Datagridview, отключите кнопку/строку

У меня есть datagridview на форме с некоторыми данными. 1-й столбец содержит кнопку для удаления строки. Как мы можем отключить эту кнопку или всю строку на основе некоторого условия, таким образом, строка не может быть удалена?

6
задан Brian Tompsett - 汤莱恩 6 July 2015 в 20:26
поделиться

2 ответа

На самом деле HowTo в MSDN делает именно это.

Edit: Добавлены некоторые другие предложения.

Вы можете сделать невидимым столбец кнопок.

Или, если вы хотите запретить удаление только определенных строк, вы можете указать true или false в каждом свойстве DataGridViewRow s Tag , а в обработчике событий кнопки вы удаляете только те для которых установлено значение false. Вы могли бы объединить это с простым изменением цвета переднего плана и фона ячейки, чтобы она выглядела отключенной, эту окраску, вероятно, можно было бы сделать в обработчике событий CellFormatting или что-то в этом роде, чтобы вам не приходилось пропустите и раскрасьте вручную.

3
ответ дан 8 December 2019 в 17:18
поделиться

Не могли бы вы просто отключить ячейку кнопки в обычное пустое текстовое поле?

Dim cell As DataGridViewButtonCell = dgv.row(x).cell(y)
cell = New DataGridViewTextBoxCell()
cell.value = String.Empty
cell.ReadOnly = True

Она теряет границу «Кнопка». внешний вид и сливается с остальной частью ячеек (при условии, что вы используете в основном DataGridViewTextBoxCells по умолчанию).

Вот эквивалент в C #, плюс он закрашен серым полем, чтобы оно выглядело доступным только для чтения:

var cell = dgv[column, row] = new DataGridViewTextBoxCell();
cell.Value = ""; // ignored if this column is databound
cell.ReadOnly = true;
cell.Style.BackColor = Color.FromKnownColor(KnownColor.Control);
8
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: