2013-05-16 3 views
0

Я извлекаю результаты из базы данных 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); 
+0

Это отвечает достаточно полно на MSDN: http://msdn.microsoft.com/en-us/library/ms171619. aspx вам в основном нужно обработать событие cellvaluechanged, проверить столбец, а затем изменить ячейку (плюс они добавят новое свойство, чтобы кнопка фактически не отображалась) –

+0

После просмотра примера я не уверен, хочу ли я пройти проблема в том, чтобы просто отключить одну кнопку. Я мог бы просто обработать значение строки на CellContentClick, чтобы выяснить, следует ли мне продолжить или вернуться. –

+0

После большего поиска я просто решил перейти от ButtonColumn в текстовый столбец и добавить кнопку где-нибудь еще в форме. Теперь я просто изменяю текстовое значение при нажатии кнопки. –

ответ