如果至少显示表单的框架,如何才能使表单的控件不加载?

时间:2012-11-25 20:28:26

标签: c# winforms controls

我有一个C#Winforms表单,其中包含大量自定义控件,需要大约10秒才能加载。现在,当我点击菜单项打开我的表单时,菜单会冻结10秒钟,然后表单就会弹出准备就绪。我想做的是以下内容:只要您单击相应的菜单项以打开我的表单,我想立即显示表单,但可能只有红色背景并且没有控件。然后表单可以开始尝试加载我的所有控件。这样,用户看到他们的鼠标单击打开了新表单,并且它看起来不像整个应用程序冻结。将它移动到新线程不是一种选择。

1 个答案:

答案 0 :(得分:1)

您是否尝试将用户控件放在单独的用户控件中,然后在Shown事件中对其进行实例化,然后将其添加到表单中。

即。像这样的东西

<强> Form1中

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);
    }
}

<强>的UserControl1

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        System.Threading.Thread.Sleep(10000);
        InitializeComponent();

    }
}