一个主页面,上有一个按钮
要求按下按钮后,弹出一个带datagridview的窗口,我在这个弹出窗口的form_load()函数里
写了如何加载datagridview1.datasource = ds.tables[0];
因为数据量很大,所以界面会出现假死,等到所有数据都加载完了,才会显示窗口。现在想先弹出窗口,然后慢慢加载数据
目前是用多线程的方法实现,但是因为要访问跨线程的控件,因此还要用到委托,很麻烦
有没有比较直接的办法呢?谢谢各位了

解决方案 »

  1.   

    在这个弹出窗口的form_Shown()函数里 
    写了如何加载datagridview1.datasource = ds.tables[0]; 
      

  2.   

    backgroundWorker控件,试试。
    否则,就多线程了。
      

  3.   

    用timer实现,我们项目都是这么做!
    load里面,触发timer,加载数据的代码就写在timer_Tick里面
    绝对好用
      

  4.   

     加载时触发定时控件Timer的定时事件 30秒 之后 执行加载 加载结束后停止 计时。估计就搞定了。
      

  5.   

    lzc2125 说的对 晚他一步 呵呵~
      

  6.   

    如果是非模态对话框,就写一个公共方法,等窗体Show过后,在外面掉这个方法
    如果是模态,Timer是一种思路,异步是更好的思路(毕竟数据量较大)