winform启动时怎样先显示窗体,然后再加载窗体中表格的内容?
因为加载表格中的内容需要时间。

解决方案 »

  1.   

    把加载表格内容的代码放在Form1_Load事件中。
      

  2.   

    void Form_Load(object sender, EventArgs e)
    {
      this.BeginInvoke(new EventHandler(LoadTable), this, EventArgs.Empty);
    }void LoadTable(object sender, EventArgs e)
    {
      Application.DoEvents();
      // Load your data here.
    }
    注意,上面这种方法LoadTable是在UI线程中执行的,在加载数据过程中,界面无法响应。如果不能满足要求,就应当考虑使用BackgroundWorker:void Form_Load(object sender, EventArgs e)
    {
      BackgroundWorker worker = new BackgroundWorker();
      worker.DoWork += new DoWorkEventHandler(worker_DoWork);
      worker.RunWorkerAsync();
    }void worker_DoWork(object sender, DoWorkEventArgs e)
    {
      // Load your data here.
    }
      

  3.   

    我的意思是,如果把加载表格内容的代码放在Form1_Load事件中,由于加载表格的内容需要一定时间(例如通过网络提取表格的内容),Form1的窗口在表格内容加载完成前是不会显示的!从而造成用户等待不耐烦。
    所以需要在加载表格及内容之前,提前显示窗体,在窗体中提示“正在加载数据...”。