小弟新人,初学委托,比较晕,望指教!
我的需求如下:主窗体MainForm,有一个按钮ButtonShowData,点击按钮打开另一个窗体DataForm,DataForm中是一个DataGridView,现在我在主窗体中有个DataTable,这个DataTable要用来做DataForm中DataGridView的数据源,我在主窗体中有一个子线程,执行一个循环,每次循环会往这个DataTable中添加一条数据,我需要在每次往DataTable中添加数据的同时,去更新窗体DataForm中DataGridView中显示的数据
我看了网上的一些例子,没能活学活用,感觉我的需求跟他们有点出入,我目前做的是
MainForm中定义:
public static DataTable dtMatchTable = null;//DataForm中DataGridView的数据源
public delegeta void SetDataSource();
public event SetDataSource SetData;
最后在循环中调用SetData;
DataForm中定义:
首先构造函数将MainForm传过来
MainForm m;
public DataForm(MainForm mf){
    m = mf;
}
然后在DataForm的onload事件里
m.SetData += new SetDataSource(dgvSetData);
void dgvSetData(){
    dgvData.DataSource = MainForm.dtMatchTable;
}
这样做完还有很大问题,但我不知道怎么改了,问题如下
1.当我点击DataGridView的列名进行排序时里面的数据才会更新,无法做到同步
2.如果不先把DataForm给show出来,程序异常(这里应该需要各判断吧,我还没有往下想)
3.把DataForm关闭再打开,程序异常(无法访问已经释放的资源)我这做的看着有点怪,不知道这种思路是不是死胡同,或者谁能帮我解决下这个问题,先谢过了

解决方案 »

  1.   

    就你这点代码很难帮你看出所有的问题的,主要的代码你又没给出来,你说当我点击DataGridView的列名进行排序时里面的数据才会更新,无法做到同步估计就是你绑定的这个方法dgvSetData没写好,还有你这些如果不先把2.DataForm给show出来,程序异常(这里应该需要各判断吧,我还没有往下想)
    3.把DataForm关闭再打开,程序异常(无法访问已经释放的资源)根本都看不到代码我也不清楚了
      

  2.   

    看看这个文章中实现:http://www.cnblogs.com/zhili/archive/2013/05/10/APM.html