我在 winform 上有一个 DataGridView。我在表单的加载方法中动态添加 DatagridViewButtonColumn,按钮名称为 btnAction,文本显示为“Process”。
因此,网格中的每一行在最后一列中都会有这个“处理”按钮。
在此按钮的单击事件中,我使用 BackgroundWorker 来调用执行一些计算的方法。计算结束后,我需要在网格的该行中将单击按钮的文本更新为“已处理”。请问我该如何实现?
谢谢。
最佳答案
您可以设置相关单元格的值,这将更新文本。
为此,您还必须将列的 UseColumnTextForButtonValue
属性设置为 false;
dataGridView[0,0].Value = "Processed";
使用该代码,您只需更改列和行索引以匹配您的单元格,或以其他方式访问单元格。
此代码设置您的值,但正如您所说,您是在后台工作人员中执行此操作,您将需要更多代码来设置文本。
后台工作人员有一个事件 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";
}
关于winforms - 更新数据 GridView 中按钮的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291842/