c#桌面应用错误!!

luckiness408 2024-10-21 14:58:46
 private void getOriginalData(string mName)
 {

     DataGrid.Rows.Clear();
     DataGrid.Columns.Clear();
     DataGrid.Headers.Clear();
     headerTextList.Clear();
     string headerText, rowHeaderText;  
     try
     {
         SQL.getModelParaData(mName + "_Cooling");
         coeff_re = SQL.originalC;
         SQL.getModelParaData(mName + "_Elec");
         coeff_ele = SQL.originalE;
         SQL.getModelParaData(mName + "_InPutPower");
         coeff_power = SQL.originalP;

         if (SQL.evaRange.Count == 0||SQL.conRange.Count==0) return;
         if (DataGrid == null) return;
         //lock(DataGrid)
         {
             for (int i = 0; i < SQL.evaRange.Count; i++)
             {
                 headerText = SQL.evaRange[i].ToString() + ".0";
                 DataGridViewCell cell = new DataGridViewTextBoxCell();
                 DataGridViewColumn col_textCH = new DataGridViewColumn();
                 DataGridViewColumn col_textCOP = new DataGridViewColumn();
                 DataGridViewColumn col_textele = new DataGridViewColumn();
                 DataGridViewColumn col_textInput = new DataGridViewColumn();
                 if (col_textCH == null || col_textCOP == null || col_textele == null || col_textInput == null) continue;                       
                 col_textCH.CellTemplate = cell;
                 col_textCOP.CellTemplate = cell;
                 col_textCOP.HeaderText = "COP";
                 col_textele.CellTemplate = cell;
                 col_textInput.CellTemplate = cell;
                 if (ContentInput.dataResource.IsEnglish)
                 {
                     col_textele.HeaderText = "elec";
                     if (ContentInput.dataResource.ReturnCoolOrHeat)
                     {
                         col_textCH.HeaderText = "cooling";
                     }
                     else
                     {
                         col_textCH.HeaderText = "heating";
                     }
                     col_textInput.HeaderText = "InPutPower";
                 }
                 else
                 {
                     col_textele.HeaderText = "电流";
                     if (ContentInput.dataResource.ReturnCoolOrHeat)
                     {
                         col_textCH.HeaderText = "制冷量";
                     }
                     else
                     {
                         col_textCH.HeaderText = "制热量";
                     }
                     col_textInput.HeaderText = "输入功率";
                 }
                 //col_textCH.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                 //col_textCOP.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                 //col_textele.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                 //col_textInput.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                 headerTextList.Add(headerText);
                 //lock (col_textInput)
                 {
                     DataGrid.Columns.Add(col_textCH);
                     DataGrid.Columns.Add(col_textCOP);
                     DataGrid.Columns.Add(col_textele);
                     DataGrid.Columns.Add(col_textInput);
                     //DataGrid.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
                     DataGrid.Headers.Add(new kryptonDataGridView_Re.TopHeader(DataGrid.ColumnCount - 4, 4, headerText));
                 }
                 
             }
             for (int i = 0; i < SQL.conRange.Count; i++)
             {
                 rowHeaderText = SQL.conRange[i].ToString() + ".0";
                 DataGridViewRow rowData = new DataGridViewRow();
                 if (rowData == null) continue;
                 rowData.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                 rowData.HeaderCell.Value = rowHeaderText;
                 DataGrid.Rows.Add(rowData);
             }
             cellSelect(null, null);
         }
         
     }
     catch(Exception ex)
     {
         //throw ex;
         MessageBox.Show("peformance getOriginalData error:" + ex.Message);
     }
     

 }

为什么

DataGrid.Columns.Add(col_textCH);
DataGrid.Columns.Add(col_textCOP);
DataGrid.Columns.Add(col_textele);
DataGrid.Columns.Add(col_textInput);中的任何一个会提示超出范围,无引用实例对象,集合已修改,可能无法执行枚举操作;所提供的列不属于DataGridView控件等错误;

DataGrid.Rows.Add(rowData);

也会显示无引用实例对象的错误。

...全文
105 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2024-10-22
  • 打赏
  • 举报
回复

DataGrid必须是已经存在的控件

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧