Почему ширина выпадающего списка автоматического предложения не совпадает с шириной поля со списком? - PullRequest
2 голосов
/ 06 февраля 2011

В VB.NET для поля со списком я установил режим автозаполнения «SuggestAppend» и источник автозаполнения «ListItems». Работает как положено. Но ширина выпадающего списка с автозаполнением отличается от ширины поля со списком, поэтому выглядит странно.

Я попытался изменить свойство ширины раскрывающегося значения, но оно меняет значение обычного раскрывающегося списка (отображается после нажатия стрелки вниз на выпадающем списке), а не раскрывающегося списка с автоподстановкой.

Итак, какой код или свойство необходимо установить, чтобы сделать автоматически выпадающий выпадающий список такой же ширины, что и ширина поля со списком? This image shows difference between the width of autosuggest dropdownbox and that of combobox width

This images show normal dropdown box , width of which is controlled by dropdown width propery of combobox

1 Ответ

2 голосов
/ 06 февраля 2011

Посмотрите внимательно, и вы заметите, что его ширина настраивается пользователем.Ручка изменения размера в нижнем правом углу - мертвая раздача:

resizing grip indicated with a freehand circle

Нет встроенной опции для указания ширины, и это в соответствии с дизайном.Под крышками элемент управления ComboBox фактически использует функцию SHAutoCompleteAPI для реализации этой функции.Поле автоматического предложения всегда отображается с последней шириной, выбранной пользователем.С таким же успехом он может казаться намного больше , чем ширина поля со списком.

Если вы действительно хотите это сделать, вы можете создать подкласс элемента управления ComboBox, P / Invoke связкафункций из Windows API, и получите дескриптор к окну окна авто-предложения, которое вы могли бы затем изменить размер.Но код уродлив, и вряд ли стоит того.Пример кода доступен в этой теме .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...