当前位置: 代码迷 >> C# >> C# winform 在一个窗体中控制另一个窗体的Datagridview,该如何解决
  详细解决方案

C# winform 在一个窗体中控制另一个窗体的Datagridview,该如何解决

热度:2   发布时间:2016-05-05 03:25:19.0
C# winform 在一个窗体中控制另一个窗体的Datagridview
在窗体(NewReplaceFrameForm)中重新绑定另一个窗体(MainForm)的Datagridview(dgv_ReplaceFrameHead),程序没有出错,从数据库返回的数据也没有错,但是Datagridview的数据就是没有改变!!要疯了,到底是哪里出了问题,求指教!!

NewReplaceFrameForm窗体重绑定Mainform中的Datagridview的代码如下:
 
 
 #region "重新绑定Mainform窗体中的镜架换料单"

                MainForm f = new MainForm(UserID, Password, UserType);

                DataTable dtFrameReplaceDetail = db.ExceComdReturnDataTable("proc_ShowReplaceFrame", CommandType.StoredProcedure, null);

                if (dtFrameReplaceDetail != null && dtFrameReplaceDetail.Rows.Count > 0)
                {
                    f.dgv_ReplaceFrameHead.DataSource = dtFrameReplaceDetail;
                    f.dgv_ReplaceFrameHead.ClearSelection();
                }
                else
                {
                    DataTable dt2 = (DataTable)f.dgv_ReplaceFrameHead.DataSource;
                    dt2.Rows.Clear();
                    f.dgv_ReplaceFrameHead.DataSource = dt2;
                }

                #endregion

------解决思路----------------------
你单步调试下啊
1、确定给dgv_ReplaceFrameHead赋值的数据源是否有记录?
2、dgv_ReplaceFrameHead绑定的列名是否包含在你赋值的数据源里面?
------解决思路----------------------
MainForm f1 = new MainForm(UserID, Password, UserType);
MainForm f2 = new MainForm(UserID, Password, UserType);
你觉得f1和f2同一个实例吗?如果不是,改变f1的属性可以改变f2吗?

你现在认为代码里的MainForm f和已经显示了的MainForm是用一个实例吗?

------解决思路----------------------
这问题不是昨天问过了
没解决就结贴了??

MainForm f = new MainForm(UserID, Password, UserType);
你这还是一开始就不对了

不要重新实例化MainForm啊

你应该去获取当前显示的MainForm实例,然后使用委托去调用它里面的方法
------解决思路----------------------
意思你应该去改原来已经new出来的form,而不是再new一个form,再new的话跟已经显示出来的没有一毛钱关系
  相关解决方案