winforms - 更新数据 GridView 中按钮的文本

标签 winforms datagridview backgroundworker

我在 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/

相关文章:

C# 后台 worker 问题

c# - 无法从另一个线程访问对象

.net - 在 VS2010 中调试时出现 UI 阻塞

c# - 使用 SqlBulkCopy 为每个插入的行触发触发器

vb.net - 如何将 DataGridView 绑定(bind)到自定义类列表

c# - DataGridView:按值传递还是按引用传递?

c# - 如何在 .NET 2.0 中创建自定义集合

c# - BackgroundWorker 意外死亡

c# - 显示带有编号代码行的代码

c# - 如何使用 Entity Framework 以 DataGridView 可编辑和上下文跟踪更改的方式过滤数据?