解决方案 »

  1.   

    1.加载时间长,首先你应该想如何缩短这个时间,实在缩短不了再想别的办法
    2.放个label,你在逗我吗?
    主界面都已经卡死了,label会变化吗?
    你应该弹出一个全屏的等待窗口,这个窗口要用多线程来做,然后显示个进度条或者一段动画什么的.
      

  2.   

    然后,在主窗体加载完毕,Shown事件里,让等待窗口关闭
    这里可以用全局变量传值,等待窗体中放个timer检测这个值
      

  3.   

    先显示一个初始加载Loadingform,在这个Loadingform中启用线程,
    完成需要的功能加载。这个过程中,在Loadingform显示加载进度等信息
    等功能界面加载完成后,
    将Loadingform隐藏起来就可以了。
    public partial class LoadingForm : Form
    {
           private MainForm form;
            private Thread loadThread; //加载线程
           
            private void LoadingForm_Load(object sender, EventArgs e)
           {
                loadThread = new Thread(new ThreadStart(LoadDataFunc));
                loadThread.IsBackground = true;
                loadThread.Start();
               ...
           }         void LoadDataFunc()
             {
                 ...
                 //初始化完成后
                 
                  //使用委托
                  this.Invoke(new Action(() => { 
                  form.Show();
                 this.Visible = false;
                 }));
            }
        }