C# DataGridView - как включить вертикальную полосу прокрутки
DataGridView (форма) содержит достаточно строк, чтобы вертикальная полоса прокрутки отображалась. Но это не включено. Силдер для движения отсутствует, а кнопка вверх и кнопка вниз выделены серым цветом.
=> есть вертикальная полоса прокрутки, но она не включается.
пробовал:
- после заполнения DataGridView элемент управления обновляется.
- изменение размера всей панели.
- атрибут Frozen имеет значение false.
- Я щелчок в ячейку можно использовать клавиши вверх и вниз для прокрутки, но прокрутка не будет включена.
Если я изменяю размер элемента управления во время работы (DataGridView находится на Splitpanel), полоса прокрутки может использоваться e.g теперь включено.
5 ответов
попробуйте это:
1. один из ваших столбцов, вероятно, имеет замороженное свойство, установленное как True
.
что должно быть False
для всех столбцов.
2. Установите AutoSizeMode проблемного столбца в AllCells
3. mygrid.DockStyle = DockStyle.Заполнить
та же проблема плюс некоторые обходные пути можно найти здесь:
datagridview вертикальная полоса прокрутки не обновляется должным образом (ошибка формы?)
Это определенно кажется ошибкой winforms, которая появляется, например, когда DGV помещается внутри вкладки tabcontrol.
- вы должны закрепить заливку datagridview на панель
- Если у вас есть некоторые замороженные строки, убедитесь, что эти строки установлены после завершения ввода данных в gridview
если вы установили замороженную строку раньше, строка при добавлении будет принимать стиль по умолчанию первой строки, и все ваши строки gridview будут иметь опцию row.frozen = true
. Вот почему вертикальный свиток не появляется.
у меня была аналогичная проблема с горизонтальной полосой прокрутки.
Делать PerformLayout
на сетке это не решило.
Получается, что проблема в моем случае заключалась в том, что форма была отключена.
У нас есть инфраструктура, которая отключает форму при загрузке, загружает кучу вещей асинхронно и в конце дает форма.
По какой-то причине этого было достаточно, чтобы полоса прокрутки оставалась отключенной, когда форма была включена (и, как в вашем сценарии, изменение размера формы при запуске включило полосу прокрутки).
Так что для меня решением был вызов PerformLayout
решетки после благоприятной форме.