如何在DataGridView中显示独立按钮?

时间:2012-08-06 10:49:15

标签: c# button datagrid

我有DataGridView来自数据库的已加载元素 问题是我想在某些行中显示一个按钮(某些元素需要此按钮,而其他一些元素则不需要),我不知道如何。
我现在唯一能做的就是这个代码显示一个'删除'按钮,但是对于每一行。

DataGridViewButtonColumn btnDelete = new DataGridViewButtonColumn();
dataGridView.Columns.Add(btnDelete);
btnDelete.Text = "Delete";
btnDelete.UseColumnTextForButtonValue = true;

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以通过将DataGridViewButtonCells插入到您想要按钮的单元格中来完成此操作。

例如:

var cell = new DataGridViewButtonCell();
cell.Value = "Button text"
cell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
dataGrid.Rows[rowIndex].Cells[columnIndex] = cell;

该列不需要是按钮列,例如,它可以是文本框列。

或者你可以走另一条路,做一个按钮栏,然后:

for (int i = 0; i < dataGrid.Rows.Count; i++)
    if (i % 2 == 1) // whatever the condition is
        dataGrid.Rows[i].Cells[COLUMN_WITH_BUTTONS] = new DataGridViewTextBoxCell();

您还可以创建一个自定义数据网格列和单元格类型(从最接近您需要的那些继承),它具有控制单元格中显示内容的标记(您添加)。

您无需立即对整个网格执行此操作 - 您可以随时更改网格。例如,您可以创建一个将单元格设置为适当类型的函数,然后在发生某些事件时调用它(在事件处理程序中等)。