0

我有一个DataGridView从数据库加载的元素。
问题是我想在某些行中显示一个按钮(一些元素需要这个按钮,而另一些不需要),我不知道怎么做。
我现在唯一拥有的是这段代码,用于显示“删除”按钮,但对于每一行。

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

谢谢您的帮助!

4

1 回答 1

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();

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

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

于 2012-08-06T10:58:18.423 回答