我有一个 C# Winforms 表单,其中包含大量自定义控件,加载大约需要 10 秒。现在,当我单击菜单项打开表单时,菜单会冻结 10 秒钟,然后表单就会弹出准备就绪。我想做的是:一旦您单击适当的菜单项打开我的表单,我想立即显示该表单,但可能只有红色背景且没有控件。然后表单可以开始尝试加载我的所有控件。这样用户就会看到他们的鼠标点击打开了新表单,并且看起来整个应用程序都没有冻结。将其移至新线程不是一种选择。
问问题
91 次
1 回答
1
您是否尝试过将用户控件放在单独的用户控件中,然后在 Shown 事件中实例化它,然后将其添加到表单中。
即这样的东西
表格1
public partial class Form1 : Form
{
UserControl1 usr;
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
usr = new UserControl1();
usr.Dock = DockStyle.Fill;
panel1.Controls.Add(usr);
}
}
用户控件1
public partial class UserControl1 : UserControl
{
public UserControl1()
{
System.Threading.Thread.Sleep(10000);
InitializeComponent();
}
}
于 2012-11-25T20:41:50.983 回答