更新datagridview中按钮的文本

时间:2011-06-09 11:10:36

标签: winforms datagridview backgroundworker

我在winform上有一个DataGridView。我在表单的加载方法中动态添加DatagridViewButtonColumn,按钮名称为btnAction,文本显示为“Process”。

因此,网格中的每一行都会在最后一列中显示此“处理”按钮。

在此按钮的单击事件上,我使用BackgroundWorker调用执行某些计算的方法。计算结束后,我需要将单击按钮的文本更新为网格中该行中的“已处理”。我该如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:3)

您可以设置相关单元格的值,这将更新文本。

为此,您必须将列的UseColumnTextForButtonValue属性设置为false;

dataGridView[0,0].Value = "Processed";

使用该代码,您只需更改列和行索引以匹配您的单元格,或以其他方式访问单元格。

此代码设置您的值,但正如您所说,您在后台工作程序中执行此操作,您将需要更多代码来设置文本。

backgroundworker有一个事件RunWorkerCompleted,一旦工人完成就会被触发。在您的工作人员DoWork事件处理程序中只需要处理代码:

void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    // Some long running processing
}

然后在RunWorkerCompleted处理程序中设置值:

void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    dataGridView1[0,0].Value = "Processed";
}