C#关于在使用多线程编程时,利用委托来操作控件,提示未将对象引用设置到对象实例

以下是部分代码:newThread((ThreadStart)(delegate(){dataGridView1.Invoke((MethodInvoker)delega... 以下是部分代码:
new Thread((ThreadStart)(delegate()
{
dataGridView1.Invoke((MethodInvoker)delegate
{
foreach (DataGridViewRow item in dataGridView1.Rows)
{

item.Cells[MACNum].Value = CPDM;
item.Cells[MACNum + 1].Value = Version;
item.Cells[MACNum + 2].Value = SCRQ;
item.Cells[MACNum + 3].Value = fgbs;
//To generate 6 bits string,add 0 if the length less than 6.
item.Cells[MACNum + 4].Value = Convert.ToString(string.Format("{0:D6}", CPLSH));
CPLSH++;
item.Cells[MACNum + 6].Value = model;
item.Cells[MACNum + 7].Value = Pack;
item.Cells[MACNum + 8].Value = Area;
}
});
}))
.Start();

请问下是什么原因。报错的部分就是对datagridview的所有操作。我点击中断,软件就自动退出了了,没法观察到具体原因。我看微软关于对MethodInvoker 的介绍是这么操作的啊。求指点。
展开
 我来答
syht2000
高粉答主

2015-04-28 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
在 item.Cells[MACNum].Value = CPDM;这行上下断点,看你的Cells到底是多大的长度。
追问
我已经解决了。是控件datagridview属性设置的问题。这个跟我导入的数据有关系。我将datagridview添加,编辑,删除全部去掉,就没问题了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式