Горизонтальная полоса прокрутки не видна в DataGridView

У меня есть форма DataGridView on Window, которая заполняется 30 столбцами и тысячами строк. ScrollBars свойство имеет значение Both, но горизонтальная полоса прокрутки не видна. даже я не могу прокручивать клавишей со стрелкой с клавиатуры.

Я попробовал это, установив свойство ScrollBars в Horizontal, но это не имеет никакого значения.

Любые предложения, пожалуйста?

Спасибо

Ответ 1

Ну, ребята, его разобрали.

Я отвечаю на свой вопрос; это может помочь кому-то в будущем.

один из столбцов имеет свойство Frozen, заданное как True. который должен быть false для всех столбцов. Теперь ScrollBar работает абсолютно нормально для меня.

Приветствия

enter image description here

Ответ 2

Я знаю, что это уже было разрешено, но я столкнулся с другой причиной, почему это может произойти, поэтому я подумал, что добавлю его в качестве ответа, если у кого-то будет такая же проблема.

Если ваша форма имеет DataGridView, который стыкуется, чтобы заполнить форму, а в форме также есть строка состояния, тогда в зависимости от того, какой заказ они создаются, строка состояния может скрывать панель прокрутки DataGridView. Чтобы исправить это, щелкните правой кнопкой мыши на DataGridView и выберите "Привести к фронту".

Ответ 3

У меня была эта раздражающая проблема. Я уже создал DataGridView в моей форме и задаю все параметры привязки данных и свойств в файле .CS.

Я просто прокомментировал строку в моем коде за файлом (.cs) i.e.

gvTblContent.AutoSize = true;

Вам не нужно устанавливать свойство AutoSize, по умолчанию будут предоставлены горизонтальные и вертикальные полосы прокрутки, в противном случае вы можете использовать:

gvTblContent.ScrollBars = ScrollBars.Both;

Ответ 4

Док-станция. Заполнение DGV немного глючит.
Это происходит, когда у вас несколько стыковочных панелей, панелей инструментов и т.д. Более часто, когда вы создаете свои столбцы во время выполнения.

Элемент управления считается более широким, чем его контейнер, и горизонтальная полоса прокрутки не появляется.

Замороженные, автоматические, brint передние и другие упомянутые средства защиты не всегда работают. Наиболее надежным решением является Dock.Left и установка ширины DGV во время выполнения. Таким образом, DGV не путает насчет того, насколько он широк.

Ответ 5

Когда я столкнулся с этой раздражающей проблемой, это было связано с свойством AutoSizeColumnsMode DGV, которое было установлено на Fill

Я исправил это, изменив это свойство на AllCells, но любое другое значение будет работать. Он работает, даже если DGV состыкована, и у меня есть несколько пристыкованных панелей, а первая колонка - Frozen.

Ответ 6

У меня была аналогичная проблема. Что я сделал, проверьте каждый из столбцов Datagrid и установите Frozen на "false". Надеюсь, это поможет.

Ответ 7

Я также встречаю эту проблему. Это глупая ситуация в моем случае.

Пожалуйста, проверьте положение/размер DataGridView вне зависимости от формы.

Ответ 8

У меня была та же проблема, и я обнаружил, что мой dataGridView был немного больше, чем форма, в которой она была. Я скорректировал размер, чтобы соответствовать форме, и это сработало! Надеюсь, это поможет!

Ответ 9

В моем случае я просто использовал ANCHOR Top, Bottom, Left, Right вместо DOCK Fill.

Попробуйте.

Ответ 10

Несколько столбцов show/hide на моей стороне вызывали ту же проблему. Пришлось добавить dataGridView1.ScrollBars = ScrollBars.Both; после обработки всех столбцов и строк в datagridview

Ничего из вышеперечисленного не помогло до этого 1. Без замороженных столбцов 2. Нагрузка на форму имеет dataGridView1.ScrollBars = ScrollBars.Both; 3. Нет строки состояния

Ответ 11

У меня тоже была эта проблема в VS2015 на winform.

У winform есть таблица, разбитая на 4 строки, 1 столбец. В строки я помещаю панели для размещения других элементов управления, кроме строки DataGrid, которая находится в последней строке. DataGrid устанавливается с док-станцией для заполнения. Форма также имеет строку состояния внизу, для будущего использования.

Я обнаружил, что строка состояния блокировала полосу прокрутки, как упоминалось ранее.

Я добавил еще одну строку в макет таблицы, но это будет отображать большое пустое место внизу формы как во время выполнения, так и в дизайне. Изменение размера формы также не разрешилось. Я попытался установить высоту строки в макете таблицы, но это не сработало. Я пробовал 1 пиксель, 5 пикселей и т.д. Никаких изменений. В конце концов я сдался и удалил строку состояния, ничего не использовал для чего-либо.

Ответ 12

У меня был DataGridView, сидящий внутри ячейки TableLayoutPanel, и ни одна полоса прокрутки не показывалась в DataGridView. Я думаю, что размер DataGridView также не управлялся должным образом, когда DataGridView состыковался, чтобы заполнить ячейку TableLayoutPanel. У меня не было замороженных столбцов.

Я смог его исправить, разместив DataGridView внутри Panel и установив AutoScroll = true на панели, чтобы позволить панели управлять прокруткой. Я состыковался с панелью, чтобы заполнить ячейку TableLayoutPanel, и состыковал DataGridView, чтобы заполнить панель.

Ответ 13

В моем случае Полоса прокрутки не появлялась до тех пор, пока я не понял состояние замороженного столбца и только для чтения. Я сделал замороженные столбцы для столбца только для чтения, а также один редактируемый столбец в моем dataGridView. Когда я удаляю frozen=false для редактируемого столбца, появляется горизонтальная полоса.

Ответ 14

Я установил несколько первых замороженных строк в true (H_bar). Но я установил frozen = true для невидимого столбца (column.visible = false), он исчез.

Ответ 15

У меня была такая же проблема с DataGridView внутри tableLayoutPanel.

Ничто из перечисленного не помогло мне.

Оказывается, столбец в таблицеLayoutPanel, в котором установлен DataGridView, имеет значение AutoSize.

Решение состоит в том, чтобы установить столбец tableLayoutPanel в фактическое значение или процент.

Ответ 16

Все ваши замороженные столбцы должны соответствовать форме. В противном случае горизонтальная полоса прокрутки не отображается. Если горизонтальная полоса прокрутки отсутствует, сделайте вашу форму шире, пока не увидите свое последнее замороженное поле, а затем появится окно горизонтальной полосы прокрутки.

Ответ 17

У меня была похожая проблема, не из-за свойства frozen, но, скорее всего, из-за ошибок DataGridView, после того, как я добавил некоторые строки программно. Прочитав этот ответ на другой вопрос, который я решил с помощью:

dgv.PerformLayout()

после добавления этих строк, незадолго до того, как показывалось dgv.