如何通过行数据动态地将控件添加到datagridview中

时间:2014-02-01 11:18:23

标签: c# .net datagridview

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

如下所示:

 No   Name   State  Controls
---- ------ ------ ------------------
 1    AAA    True   [Discard][Detail]
 2    BBB    False  [Discarded][Detail]
 3    CCC    True   [Discard][Detail]

这里的关键点是,当“State”数据行为false时,“Discard”按钮Enabled属性应设置为False,标签更改为“Discarded”。

我只能按

添加列
datagridView1.addColumn("ColumnControls", "Contorls");

但我不知道如何根据行数据添加按钮。

我正在使用VisualStudio 2005和SQLite。

1 个答案:

答案 0 :(得分:1)

DataGridViewButtonColumn添加到DataGridView

DataGridViewButtonColumn discardColumn = new DataGridViewButtonColumn();
discardColumn.HeaderText="Controls";
discardColumn.Name="Discard";
datagridview1.Columns.Add(discardColumn);

DataBindingComplete事件处理程序中,添加以下代码

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"
 }
}

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