C # DataGridView Неверный размер полосы прокрутки, вызывающий исключение - PullRequest
0 голосов
/ 03 октября 2011

У меня есть DataGridView и я добавляю к нему несколько строк в цикле for (~ 35 строк), в то время как его свойство Enabled установлено на false. Я делал это в прошлом (когда для Enabled установлено значение true), и блок вертикальной полосы прокрутки обновлялся до соответствующего размера по сравнению с областью просмотра DataGridView и количеством элементов в сетке. Теперь, однако, он появляется, но имеет неправильный размер.

После того, как я снова включаю DataGridView, я выбираю строку и «стрелка вниз» по строкам, пока программа не выдаст исключение, говорящее «Значение должно быть в пределах диапазона» и ссылающееся на полосу прокрутки. Кроме того, я обнаружил, что если я сортирую любой из столбцов, он обновит блок полосы прокрутки до правильного размера. Есть идеи, что происходит?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 06 октября 2011

У меня только что возникла та же проблема, и я решил ее следующим образом:

DataGridView.SuspendLayout ()

... сделать добавление строк

DataGridView.ResumeLayout (true);

0 голосов
/ 28 февраля 2014

У меня была точно такая же проблема.Я перепробовал все.В конце концов я остановился на работе вокруг.Когда я разрешил AllowUserToAddRow значение True, прокрутка начала работать правильно.

Я решил обработать эту новую строку в коде, а не иметь ошибку и неправильную полосу прокрутки.Возможно, это кому-то поможет.

0 голосов
/ 03 октября 2011

Я недавно столкнулся с той же проблемой.

Вы можете сделать как 1. Сначала установите для источника данных значение NULL, затем снова предоставьте источник данных.

Или

  1. Используйте BindingList для привязки данных к DataGridView.

(отправлено с мобильного)

...