C# 如何根据行数据向datagridview动态添加控件

C# 如何根据行数据向datagridview动态添加控件,c#,.net,datagridview,C#,.net,Datagridview,在使用DataGridView时,我想在每行的末尾添加一个名为“controls”的额外列。在“放弃”和“详细信息”列中应该有两个按钮 如下图所示: No Name State Controls ---- ------ ------ ------------------ 1 AAA True [Discard][Detail] 2 BBB False [Discarded][Detail] 3 CCC True [Discard][

在使用DataGridView时,我想在每行的末尾添加一个名为“controls”的额外列。在“放弃”和“详细信息”列中应该有两个按钮

如下图所示:

 No   Name   State  Controls
---- ------ ------ ------------------
 1    AAA    True   [Discard][Detail]
 2    BBB    False  [Discarded][Detail]
 3    CCC    True   [Discard][Detail]
这里的关键点是,当行“State”数据为False时,“Discard”按钮启用属性应设置为False,标签更改为“Discard”

我只能通过以下方式添加列:

datagridView1.addColumn("ColumnControls", "Contorls");
但是由于行数据的原因,我不知道如何添加按钮


我使用的是VisualStudio 2005和SQLite。

DataGridView
中添加一个
DataGridView按钮列

DataGridViewButtonColumn discardColumn = new DataGridViewButtonColumn();
discardColumn.HeaderText="Controls";
discardColumn.Name="Discard";
datagridview1.Columns.Add(discardColumn);
databindingplete
事件处理程序中,添加以下代码

foreach(DataGridViewRow row in datagridview1.Rows)
{
 row.Cells["Discard"].Text = "Discard";
 if(row.Cells["State"].Value.ToString() == false)
 {
   row.Cells["Controls"].ReadOnly = true;
   row.Cells["Controls"].Text="Discarded"
 }
}

遵循“详细信息”列的类似逻辑。

可以在一列中添加两个按钮吗?@hammer-因此datagridview不支持它。但您可以创建自定义列并执行此操作。您还可以使用创建自己的用户控件并使用它。