Не удается добавить строки, когда элемент управления DataGridView находится в виртуальном режиме? - PullRequest
0 голосов
/ 07 апреля 2010

Когда я пытаюсь добавить новую строку в DataGridView в виртуальном режиме, например:

dataGridViewX1.Rows.Add(new string[] { "Parker", "Seattle" });

Возникает следующее исключение:

Операция недействительна, когда Элемент управления DataGridView находится в виртуальном режим

Ответы [ 3 ]

0 голосов
/ 07 апреля 2010

Вам необходимо использовать источник данных для добавления новой строки, и он автоматически отобразится в DataGridView.

0 голосов
/ 07 июня 2011

Возможно, вы сделали все то, что рекомендуют другие вопросы, но где-то установите YourDataGridView.DataSource.

Это не должно быть установлено в виртуальном , в противном случае вы получите похожее сообщение при попытке установить RowCount, и получите именно это сообщение при попытке добавить.

Если вы до сих пор «неправильно использовали» DataSource как переменную экземпляра «mailbox», которую ваши обработчики событий могут использовать для обращения к источнику данных, рассмотрите возможность вставки его в свойство Tag и использования необходимой ссылки из этого свойства (используя соответствующуютип литой).

0 голосов
/ 07 апреля 2010

Когда DataGridView находится в Виртуальный режим (DataGridView.VirtualMode = true), это означает, что содержимое DataGridView подается из источника, отличного от него, через события, выставленные на DataGridView,Если вы хотите, чтобы ваш DataGridView находился в виртуальном режиме, вам нужно добавить новую информацию в базовый источник и затем сообщить DataGridView, что есть еще одна строка, например:

// add information to the underlying source
this.dataGridView.RowCount++;

Если выне намеревался использовать DataGridView в виртуальном режиме, вы можете отключить виртуальный режим, установив DataGridView.VirtualMode в false.

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