Кто-нибудь еще видел эту ошибку в datagridview? - PullRequest
0 голосов
/ 10 мая 2019

Может кто-нибудь объяснить это?

Это работает

        TrandetlDataGridView.ReadOnly = False
        TrandetlDataGridView.CurrentRow.ReadOnly = True

Это не

        TrandetlDataGridView.ReadOnly = True
        TrandetlDataGridView.CurrentRow.ReadOnly = False

1 Ответ

1 голос
/ 11 мая 2019

Свойство DataGridView.ReadOnly ЗАПРЕЩАЕТСЯ любое свойство строки / столбца / ячейки только для чтения. «ЕСЛИ» свойство сетки только для чтения установлено на true.Это можно увидеть во втором опубликованном коде, который «не работает».

Согласно документации MS для свойства DataGridViewRow.ReadOnly в разделе замечаний…

Установка этого свойства не имеет никакого эффекта, если значение свойства DataGridView.ReadOnly равно true.

Возможное решение - оставить свойство «grid» только для чтения как false, затем выполнить циклчерез строки сетки и установите свойство каждой строки только для чтения на true.Затем он должен работать, как и ожидалось.

Пример ниже приведен на C #, однако та же идея применима и к использованию VB.

Сначала метод для обхода сетки и установки каждой строки только для чтения.свойство к true

private void SetRowsReadOnly() {
  foreach (DataGridViewRow row in TrandetlDataGridView.Rows) {
    row.ReadOnly = true;
  }
}

Затем, используя ваш пример «не работает», замените установку свойства «только для чтения» на сетку вызовом метода, описанного выше, и он должен работать как положено.

private void button2_Click(object sender, EventArgs e) {
  SetRowsReadOnly();
  TrandetlDataGridView.CurrentRow.ReadOnly = false;
}

Надеюсь, это поможет.

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