Я извлекаю результаты из базы данных Oracle и сохраняю ее в DataTable, прежде чем устанавливать ее как источник в DataGridView. Причина этого заключается в том, что я удаляю некоторые столбцы, прежде чем я покажу их пользователю. Используя DataGridViewButtonColumn, я добавил столбец, который позволяет пользователю «редактировать» определенную строку. Моя проблема в том, что я пытаюсь отключить эту кнопку на основе значения в этой текущей строке. Оставьте остальные кнопки строки включенными.Кнопка отключения в DataGridViewButtonColumn
var table = OracleConnection.Results(myquery);
table.Columns.Remove("Comments");
var editButton = new DataGridViewButtonColumn;
editButton.Value = "Edit";
editButton.Text = "Edit";
editButton.UseColumnTextForButtonValue = true;
_dtgvResults.Source = table;
_dtgvResults.Columns.Add(editButton);
Это отвечает достаточно полно на MSDN: http://msdn.microsoft.com/en-us/library/ms171619. aspx вам в основном нужно обработать событие cellvaluechanged, проверить столбец, а затем изменить ячейку (плюс они добавят новое свойство, чтобы кнопка фактически не отображалась) –
После просмотра примера я не уверен, хочу ли я пройти проблема в том, чтобы просто отключить одну кнопку. Я мог бы просто обработать значение строки на CellContentClick, чтобы выяснить, следует ли мне продолжить или вернуться. –
После большего поиска я просто решил перейти от ButtonColumn в текстовый столбец и добавить кнопку где-нибудь еще в форме. Теперь я просто изменяю текстовое значение при нажатии кнопки. –