如何在不同的线程中添加一行并更改DataGridView中的单元格值?

时间:2014-09-15 11:46:16

标签: 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 object[] { control, text });
  }
  else
  {
    control.Text = text;
  }
}

但是,我无法弄清楚DataGridView如何执行此操作。

1 个答案:

答案 0 :(得分:1)

它的工作方式完全相同,例如:

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动作 - 我更喜欢这种方式,但你的方式也会有用......