use*_*042 3 datagridview backgroundworker winforms
我在 winform 上有一个 DataGridView。我在表单的加载方法中动态添加 DatagridViewButtonColumn,按钮名称为 btnAction,其上显示的文本为“Process”。
因此,网格中的每一行的最后一列都会有这个“处理”按钮。
在此按钮的单击事件中,我使用 BackgroundWorker 来调用进行一些计算的方法。计算结束后,我需要在网格的该行中将单击的按钮文本更新为“已处理”。请问我该如何实现?
谢谢。
您可以设置相关单元格的值,这将更新文本。
为此,您还必须UseColumnTextForButtonValue将列的属性设置为 false;
dataGridView[0,0].Value = "Processed";
Run Code Online (Sandbox Code Playgroud)
使用该代码,您只需更改列和行索引以匹配您的单元格,或以其他方式访问单元格。
此代码设置您的值,但正如您所说,您是在后台工作人员中执行此操作,您将需要更多代码来设置文本。
后台工作人员有一个事件RunWorkerCompleted,一旦工作人员完成,就会被解雇。在您的工作人员DoWork事件处理程序中,只有您的处理代码:
void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// Some long running processing
}
Run Code Online (Sandbox Code Playgroud)
然后在您的 RunWorkerCompleted 处理程序中,您可以设置值:
void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
dataGridView1[0,0].Value = "Processed";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4483 次 |
| 最近记录: |