DataGridViewAutoFilterTextBox, отображающий небольшое количество элементов - PullRequest
0 голосов
/ 18 января 2019

Используя эту статью (https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/aa480727(v=msdn.10)#initialization) и библиотеку, включенную в демонстрационный проект, я настроил автофильтр в стиле Excel для просмотра таблицы данных.

Однако в столбцах, где не много разных значений, отображаются только одна или две строки:

autofilter

В этом примере фактически есть 3 или 4 значения в списке фильтров, которые пользователь может выбрать, но отображаются только две строки, а остальные вы должны прокрутить, чтобы найти.

Мне не удалось найти, где установлена ​​высота списка. Кто-нибудь может указать, где я могу изменить / установить это?

1 Ответ

0 голосов
/ 23 января 2019

Я считаю, что это может быть то, что вы ищете.

В документации следующий абзац:

Метод SetDropDownListBoxBounds

Метод SetDropDownListBoxBounds инициализирует размер и расположение раскрывающегося списка. Предпочтительный размер зависит главным образом от содержимого dropDownListBox, которое представляет собой форматированные значения, хранящиеся в коллекции ключей словаря фильтров. Метод SetDropDownListBoxBounds сначала вызывает метод Graphics.MeasureString для каждого значения фильтра. Для каждого значения ширина сохраняется, если она шире всех предыдущих значений, а высота добавляется к общей сумме высоты для всех значений. Затем результаты используются для определения предпочтительного размера .

Предпочтительная высота является наименьшим из следующих значений :

  • Суммарная высота всех значений фильтра.
  • Указанная пользователем максимальная высота, рассчитанная по DropDownListBoxMaxLines значение свойства.
  • Доступная высота клиентской области DataGridView control.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...