当前位置: 代码迷 >> C# >> C# winfrom 在窗体a中点击“输入”按钮调用窗体b的LoadData事件回重新绑定b中的Datagridview,程序不出错却没绑定成功
  详细解决方案

C# winfrom 在窗体a中点击“输入”按钮调用窗体b的LoadData事件回重新绑定b中的Datagridview,程序不出错却没绑定成功

热度:329   发布时间:2016-05-05 03:25:32.0
C# winfrom 在窗体a中点击“输入”按钮调用窗体b的LoadData事件来重新绑定b中的Datagridview,程序不出错却没绑定成功
a窗体的“输入”button代码如下
  private void btn_InputReplaceFrame_Click(object sender, EventArgs e)
        {
         MainForm f = new MainForm(UserID, Password, UserType);            
        f.LoadData("ReplaceFrameDetail");//调用mainform窗体的LoadData事件重新绑定mainform中的Datagridview
        }
b 窗体的LoadData事件代码如下[/color]  public void LoadData(string Type)
        {
             #region"绑定镜架换料表"

            if (Type == "ReplaceFrameDetail" || Type == "All")
            {

                string SelFrameReplaceDetail = @"SELECT  *       FROM  [RLF.REPLACE_FRAME_HEAD] as rfh   ";
                DataTable dtFrameReplaceDetail = db.ExceComdReturnDataTable(SelFrameReplaceDetail, CommandType.Text, null);

                if (dtFrameReplaceDetail != null && dtFrameReplaceDetail.Rows.Count > 0)
                {
                    this.dgv_ReplaceFrameHead.DataSource = dtFrameReplaceDetail;                 
                }
                else
                {
                    DataTable dt2 = (DataTable)dgv_ReplaceFrameHead.DataSource;
                    dt2.Rows.Clear();
                    dgv_ReplaceFrameHead.DataSource = dt2;
                }
            程序执行完全没有错,执行sql后得到的Datatable的数据也是正确的,就是绑定后数据还是没变化,很郁闷。。不知道是哪里出了问题,请各位前辈赐教!!
------解决思路----------------------
MainForm f = new MainForm(UserID, Password, UserType);  

第一句就错了
你这是把主窗体给重新实例化了一份

那么调用的根本就不是当前显示的那个窗体里的函数,而是新窗体里的函数

那么这个函数操作的当然也不是当前显示窗体里的控件,而是新窗体中的控件
你当前显示的窗体当然是没有反应了
  相关解决方案