C# 如何从不同的线程在DataGridView中添加行和更改单元格值?
我正在windows窗体中使用C# 如何从不同的线程在DataGridView中添加行和更改单元格值?,c#,multithreading,winforms,datagridview,C#,Multithreading,Winforms,Datagridview,我正在windows窗体中使用DataGridView表。 我想添加新行,并从线程内部重复更改同一行的单元格值 现在我知道了如何使用Invoke函数来更改控件的文本。 例如: public void SetControlText(Control control, string text) { if (this.InvokeRequired) { this.Invoke(new Action<Control, string>(SetControlText), new o
DataGridView
表。我想添加新行,并从线程内部重复更改同一行的单元格值 现在我知道了如何使用
Invoke
函数来更改控件的文本。例如:
public void SetControlText(Control control, string text)
{
if (this.InvokeRequired)
{
this.Invoke(new Action<Control, string>(SetControlText), new object[] { control, text });
}
else
{
control.Text = text;
}
}
public void SetControlText(控件控件,字符串文本)
{
if(this.invokererequired)
{
调用(新操作(SetControlText),新对象[]{control,text});
}
其他的
{
control.Text=Text;
}
}
但是,我不知道如何为
DataGridView
执行此操作,它的工作方式完全相同,例如:
public void SetCellText(DataGridView control, int x, int y, string text)
{
if (this.InvokeRequired)
{
this.Invoke(() => SetCellText(control, x, y, text));
}
else
{
control[x, y] = text;
}
}
我只更改了
Invoke
调用以使用lambda操作-我更喜欢这种方式,但您的方式也会起作用…如果我使用lambda表达式,我必须将其委托,否则它将抛出错误无法将lambda表达式转换为系统。委托