Я пытаюсь создать выпадающую форму без полей для своего пользовательского поля со списком.Выпадающая форма содержит сетку, из которой пользователь может выбирать элементы.По большей части это работает.Но я заметил, что в нижней части сетки есть место, которое не содержит никаких данных.Я установил AllowUserToAddRows в false.В любом случае, дополнительное пространство даже не включает ячейки - это просто пустое пространство управления.Просто чтобы убедиться, что дополнительное пространство было в сетке (а не в форме), я установил сетку BackgroundColor на желтый, и он отображается в форме, поэтому я знаю, что дополнительное пространство находится в сетке.
Примечание: я добавляю сетку к форме программно.Я не уверен, если это имеет значение.И я изменяю размер формы в зависимости от размера сетки.Ширина формы устанавливается равной ширине сетки.Если сетка содержит более 10 строк, я устанавливаю высоту формы для отображения только 10 строк, а вертикальная полоса прокрутки позволяет пользователю прокручивать.Если сетка содержит менее 10 строк, я устанавливаю форму, чтобы точно соответствовать этим строкам, и вертикальная полоса прокрутки не требуется.Похоже ли это на размер сетки?
Я делаю следующее в событии VisibleChanged формы, чтобы изменить размеры формы на основе содержимого сетки.Обратите внимание, что это может быть опечатки, так как я перепечатал его с распечаткиПримечание: MaxRowsToShow = 10.
int rowsHeight = _grid.Rows.GetRowsHeight(DataGridViewElementStates.Visible);
int rowCount = _grid.Rows.GetRowCount(DataGridViewElementStates.Visible);
int rowHeight = _grid.RowTemplate.Height;
int rowsToShow = Math.Min(MaxRowsToShow, rowCount);
Height = rowsToShow * rowHeight + _grid.ColumnHeadersHeight;
ОБНОВЛЕНИЕ: Я добился определенного прогресса.Я обнаружил, что установка свойства ScrollBars объекта DataGridView равным ScrollBars.Vertical создает дополнительное пространство в конце сетки.Если я установлю ScrollBars на ScrollBars.None, когда у меня будет менее 10 элементов, я не вижу дополнительного пространства.Но мне все еще нужны вертикальные полосы прокрутки, когда у меня больше 10 предметов, поэтому я все еще вижу дополнительное пространство в этом случае.Но, по крайней мере, я выяснил источник проблемы.Кто-нибудь знает, почему свойство ScrollBars вызывает это странное поведение.