C# 单击时更改datagridview中的按钮文本

C# 单击时更改datagridview中的按钮文本,c#,button,text,C#,Button,Text,我有一个未绑定的DataGridViewButtonColumn,我想在用户执行操作(将流程标记为正在进行或准备就绪)后更改每个按钮(和每行)上的文本。如何更改一行中的按钮文本而不影响每一行?因为我试图使用单元格的名称,但是所有的行都会受到影响 我试过这个 dataGridView1[e.RowIndex, e.ColumnIndex].Value = "new button text"; dataGridView1.CurrentCell.Value = "ABCD"; ColumnButto

我有一个未绑定的
DataGridViewButtonColumn
,我想在用户执行操作(将流程标记为正在进行或准备就绪)后更改每个按钮(和每行)上的文本。如何更改一行中的按钮文本而不影响每一行?因为我试图使用单元格的名称,但是所有的行都会受到影响

我试过这个

dataGridView1[e.RowIndex, e.ColumnIndex].Value = "new button text";
dataGridView1.CurrentCell.Value = "ABCD";
ColumnButton.Text = "in progress";

您说过这是一个未绑定的
DataGridView
,但我不确定您是如何添加行的。我假设您正在创建一个
DataGridViewRow
的实例,然后将
DataGridViewButtonCell
添加到按钮列的
单元格
属性中

如果设置列的文本(
ColumnButton.text=“in progress”
)更改了所有单元格的文本,则听起来您在
DataGridViewButtonCell
上将
UseColumnTextForButtonValue
设置为true。如果该属性设置为true,则更改单元格上的
值将不会更新按钮的文本

添加行时,只需将
DataGridViewButtonCell
上的
值设置为
ColumnButton.Text
即可将其默认为列的文本。然后
dataGridView1[e.RowIndex,e.ColumnIndex].Value=“新建按钮文本”应该可以工作

private void PopulateDataGridView()
{
//假设我有一个名为dataGridView1的DataGridView,它只有一列
//这是我在中设置的名为ButtonColumn的DataGridViewButtonColumn
//“添加列”或“编辑列”窗口。。。
var row=新的DataGridViewRow();
var btnCell=新的DataGridViewButtonCell();
//不使用btnCell.UseColumnTextForButtonValue=true,而是执行此操作以设置
//默认情况下,将按钮的文本转换为列的文本。
btnCell.Value=ButtonColumn.Text;
行.单元格.添加(btnCell);
dataGridView1.Rows.Add(row);
}
私有void dataGridView1\u单元格内容单击(
对象发送器,
DataGridViewCellEventArgs(e)
{
dataGridView1[e.ColumnIndex,e.RowIndex].Value=“正在加载…”;
}

您说过这是一个未绑定的
DataGridView
,但我不确定您是如何添加行的。我假设您正在创建一个
DataGridViewRow
的实例,然后将
DataGridViewButtonCell
添加到按钮列的
单元格
属性中

如果设置列的文本(
ColumnButton.text=“in progress”
)更改了所有单元格的文本,则听起来您在
DataGridViewButtonCell
上将
UseColumnTextForButtonValue
设置为true。如果该属性设置为true,则更改单元格上的
值将不会更新按钮的文本

添加行时,只需将
DataGridViewButtonCell
上的
值设置为
ColumnButton.Text
即可将其默认为列的文本。然后
dataGridView1[e.RowIndex,e.ColumnIndex].Value=“新建按钮文本”应该可以工作

private void PopulateDataGridView()
{
//假设我有一个名为dataGridView1的DataGridView,它只有一列
//这是我在中设置的名为ButtonColumn的DataGridViewButtonColumn
//“添加列”或“编辑列”窗口。。。
var row=新的DataGridViewRow();
var btnCell=新的DataGridViewButtonCell();
//不使用btnCell.UseColumnTextForButtonValue=true,而是执行此操作以设置
//默认情况下,将按钮的文本转换为列的文本。
btnCell.Value=ButtonColumn.Text;
行.单元格.添加(btnCell);
dataGridView1.Rows.Add(row);
}
私有void dataGridView1\u单元格内容单击(
对象发送器,
DataGridViewCellEventArgs(e)
{
dataGridView1[e.ColumnIndex,e.RowIndex].Value=“正在加载…”;
}

您的按钮文本是否绑定到基础数据源行?我的按钮是使用datagridview助手创建的。您的按钮文本绑定到基础数据源行?我的按钮是使用datagridview助手创建的。我创建了daratgridview,然后使用助手添加了列,还创建了cellbutton并设置了将UseColumnTextForButton值设置为true,否则将不显示文本。但是我试图将其编辑为false bt仍然不起作用,我从早上开始尝试我能找到的所有代码,但当您创建
DataGridViewButtonCell
时,它不起作用,而不是将
UseColumnTextForButtonCValue
设置为true,只需将
Value
属性设置为
ButtonCell.Text
。如果仍然不起作用,您正在处理哪个事件?您需要处理
CellContentClick
而不是
CellClick
。是的,我创建了daratgridview,然后使用助手添加了列,还创建了cellbutton,并将此UseColumnTextForButton值设置为true,否则将不会显示文本。但是我试图将其编辑为false bt仍然不起作用,我从早上开始尝试我能找到的所有代码,但当您创建
DataGridViewButtonCell
时,它不起作用,而不是将
UseColumnTextForButtonCValue
设置为true,只需将
Value
属性设置为
ButtonCell.Text
。如果仍然不起作用,您正在处理哪个事件?您需要处理
CellContentClick
,而不是
CellClick