Установка cell.ReadOnly не имеет никакого эффекта - PullRequest
10 голосов
/ 15 марта 2011

У меня есть DataGridView, где я хочу отключить некоторые ячейки / строки с настройкой ReadOnly = true.

В чем может быть причина того, что иногда это не имеет никакого эффекта, а ячейки / строки все еще доступны для редактирования?

Существуют ли другие возможности запретить редактирование определенных строк или ячеек? Можно ли предотвратить щелчок или ввод в ячейку?

Ответы [ 3 ]

17 голосов
/ 15 марта 2011

Вы можете запретить редактирование с помощью события CellBeginEdit . Если вы не хотите, чтобы ячейка редактировалась, вы можете отменить редактирование. Например, если вы хотите, чтобы только первый столбец был редактируемым, вы можете сделать это:

private void dataGridView1_CellBeginEdit(object sender, 
   DataGridViewCellCancelEventArgs e)
{
   if (e.ColumnIndex != 0) 
   { 
      e.Cancel = true;
   }
}
1 голос
/ 14 сентября 2012

Попробуйте запустить datagridview.Refresh() после установки значения readonly в true.

0 голосов
/ 15 марта 2011

Одна из возможностей заключается в том, что если вы установите свойство ReadOnly DataGridView (в коде), то необходимо сбросить ReadOnly столбцов:

this.dgv.Columns[0].ReadOnly = true; 
this.dgv.ReadOnly = false; 
// Need to reset the column's ReadOnly state:
this.dgv.Columns[0].ReadOnly = true; 

Вы также можете установить целые строки как ReadOnly

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...