C# 如何根据行数据向datagridview动态添加控件
在使用DataGridView时,我想在每行的末尾添加一个名为“controls”的额外列。在“放弃”和“详细信息”列中应该有两个按钮 如下图所示: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][
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不支持它。但您可以创建自定义列并执行此操作。您还可以使用创建自己的用户控件并使用它。