Prechádzať zdrojové kódy

处理点击列头报错

章政 8 rokov pred
rodič
commit
afd663c228
1 zmenil súbory, kde vykonal 35 pridanie a 32 odobranie
  1. 35 32
      UAS-MES/DbFind.cs

+ 35 - 32
UAS-MES/DbFind.cs

@@ -108,7 +108,7 @@ namespace UAS_MES
                     for (int i = 0; i < DbFindGridView.Columns.Count; i++)
                     {
                         DbFindGridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
-                    } 
+                    }
                     //获取查询的字段的拼接语句
                     pagination1.BindDataToNavigator(DbFindGridView, tablename, SelectField, "ID", caller, Condition == null ? "" : Condition);
                     IsAbleDbFind = true;
@@ -184,45 +184,48 @@ namespace UAS_MES
         //给打开窗体的对应字段赋值
         private void DbFindGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
         {
-            FormCollection fmCollection = Application.OpenForms;
-            ControlCollection controls = (ControlCollection)fmCollection[FormName].Controls;
-            try
+            if (e.RowIndex >= 0)
             {
-                //先判断DataTable里面是否有这个字段,然后从打开的窗口里面去获取到这个Form,从Form中的指定Panel获取到指定字段的控件
-                for (int i = 0; i < dt.Columns.Count; i++)
+                FormCollection fmCollection = Application.OpenForms;
+                ControlCollection controls = (ControlCollection)fmCollection[FormName].Controls;
+                try
                 {
-                    fillControl(e, i, fmCollection[FormName]);
-                }
-                //发起DBFind的控件
-                SuccessReturnData = true;
-                if (MainControl is MaCodeSearchTextBox)
-                {
-                    MaCodeSearchTextBox ctl = (MainControl as MaCodeSearchTextBox);
-                    ctl.GetData(true);
+                    //先判断DataTable里面是否有这个字段,然后从打开的窗口里面去获取到这个Form,从Form中的指定Panel获取到指定字段的控件
+                    for (int i = 0; i < dt.Columns.Count; i++)
+                    {
+                        fillControl(e, i, fmCollection[FormName]);
+                    }
+                    //发起DBFind的控件
+                    SuccessReturnData = true;
+                    if (MainControl is MaCodeSearchTextBox)
+                    {
+                        MaCodeSearchTextBox ctl = (MainControl as MaCodeSearchTextBox);
+                        ctl.GetData(true);
+                    }
+                    if (MainControl is SearchTextBox)
+                    {
+                        SearchTextBox ctl = (MainControl as SearchTextBox);
+                        ctl.GetData();
+                    }
+                    MainControl.Focus();
                 }
-                if (MainControl is SearchTextBox)
+                catch (Exception ea)
                 {
-                    SearchTextBox ctl = (MainControl as SearchTextBox);
-                    ctl.GetData();
+                    LogManager.DoLog(ea.Message);
+                    SuccessReturnData = false;
                 }
-                MainControl.Focus();
-            }
-            catch (Exception ea)
-            {
-                LogManager.DoLog(ea.Message);
-                SuccessReturnData = false;
-            }
-            dt = (DataTable)DbFindGridView.DataSource;
-            for (int i = 0; i < dt.Columns.Count; i++)
-            {
-                if (MainControl.Name == dt.Columns[i].Caption)
+                dt = (DataTable)DbFindGridView.DataSource;
+                for (int i = 0; i < dt.Columns.Count; i++)
                 {
-                    TextBoxValue = dt.Rows[e.RowIndex][i].ToString();
-                    break;
+                    if (MainControl.Name == dt.Columns[i].Caption)
+                    {
+                        TextBoxValue = dt.Rows[e.RowIndex][i].ToString();
+                        break;
+                    }
                 }
+                Dispose();
+                Close();
             }
-            Dispose();
-            Close();
         }