ToB企服应用市场:ToB评测及商务社交产业平台

标题: 重复设置DataGridView.DataSource报错“未将对象引用设置到对象的实例。” [打印本页]

作者: 千千梦丶琪    时间: 2024-6-15 02:42
标题: 重复设置DataGridView.DataSource报错“未将对象引用设置到对象的实例。”
  1. private List<PointInfo> pointInfos = new List<PointInfo>();
  2. PointInfo PointInfo = new PointInfo();
  3. private void btn_AddPt_Click(object sender, EventArgs e)
  4. {
  5.     PointInfo = new PointInfo()
  6.     {
  7.         Name = pointName.Text,
  8.         XPos = Convert.ToDouble(lbl_XAxisPosition.Text),
  9.         YPos = Convert.ToDouble(lbl_YAxisPosition.Text),
  10.         ZPos = Convert.ToDouble(lbl_ZAxisPosition.Text),
  11.         Speed = Convert.ToDouble(textBox2.Text),
  12.         HoldTime = Convert.ToInt32(textBox3.Text),
  13.     };
  14.     pointInfos.Add(PointInfo);
  15.     dataGridView1.DataSource = pointInfos;
  16.     dataGridView1.Refresh();
  17.    
  18.     // 列显示顺序
  19.     dataGridView1.Columns["colName"].DisplayIndex = 0;
  20.     dataGridView1.Columns["colX"].DisplayIndex = 1;
  21.     dataGridView1.Columns["colY"].DisplayIndex = 2;
  22.     dataGridView1.Columns["colZ"].DisplayIndex = 3;
  23.     dataGridView1.Columns["colTime"].DisplayIndex = 4;
  24.     dataGridView1.Columns["colSpeed"].DisplayIndex = 5;
  25.     dataGridView1.Columns["col点位运动"].DisplayIndex = 6;
  26.     dataGridView1.Columns["col直线插补"].DisplayIndex = 7;
  27.     dataGridView1.Columns["col编辑点位"].DisplayIndex = 8;
  28.     dataGridView1.Columns["col删除点位"].DisplayIndex = 9;
  29. }
复制代码
这里重复添加到第二次dataGridView1.Columns["colName"].DisplayIndex = 0;这里就会报错未引用到对象的实例
把上面创建的泛型list改为Bindlist就可以办理这个问题
List<>只是一个自动调整大小的数组,由给定范例的项目构成,带有几个辅助函数(比方:排序)。它只是数据。
 BindingList<>是范例列表或聚集的包装器,它实现了 IBindingList界面。这是支持双向数据绑定(bind)的标准接口(interface)之一。它通过实现 ListChanged 来工作变乱,在添加、删除或设置项目时引发。
末了建议处理逻辑时用List,但作为数据源绑定是用BindingList.

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4