Как строится поле с раскрывающимся списком combobox

от admin

Как строится поле с раскрывающимся списком combobox

Элемент ComboBox образует выпадающий список и совмещает функциональность компонентов ListBox и TextBox. Для хранения элементов списка в ComboBox также предназначено свойство Items .

Подобным образом, как и с ListBox, мы можем в окне свойств на свойство Items и нам отобразится окно для добавления элементов ComboBox:

И как и с компонентом ListBox, здесь мы также можем программно управлять элементами.

При добавлении с помощью методов Add / AddRange все новые элементы помещаются в конец списка. Однако если мы зададим у ComboBox свойство Sorted равным true , тогда при добавлении будет автоматически производиться сортировка.

Мы можем получить элемент по индексу и производить с ним разные действия. Например, изменить его:

Настройка оформления ComboBox

С помощью ряда свойств можно настроить стиль оформления компонента. Так, свойство DropDownWidth задает ширину выпадающего списка. С помощью свойства DropDownHeight можно установить высоту выпадающего списка.

Еще одно свойство MaxDropDownItems позволяет задать число видимых элементов списка — от 1 до 100. По умолчанию это число равно 8.

Другое свойство DropDownStyle задает стиль ComboBox. Оно может принимать три возможных значения:

Dropdown : используется по умолчанию. Мы можем открыть выпадающий список вариантов при вводе значения в текстовое поле или нажав на кнопку со стрелкой в правой части элемента, и нам отобразится собственно выпадающий список, в котором можно выбрать возможный вариант

DropdownList : чтобы открыть выпадающий список, надо нажать на кнопку со стрелкой в правой стороне элемента

Simple : ComboBox представляет простое текстовое поле, в котором для перехода между элементами мы можем использовать клавиши клавиатуры вверх/вниз

Событие SelectedIndexChanged

Наиболее важным событием для ComboBox также является событие SelectedIndexChanged , позволяющее отследить выбор элемента в списке:

Как строится поле с раскрывающимся списком combobox

Форма для ввода сведений о работнике

Private Sub Commandl_Click ()

Щелкают по кнопке Поле со списком на панели элементов и в полосе Область данных, где будет располагаться поле. При этом загружается мастер и открывается первое диалоговое окно.

VBA Excel. Элемент управления ComboBox (поле со списком)

Элемент управления ComboBox на пользовательской форме

ComboBox представляет из себя комбинацию двух элементов управления: текстового поля (TextBox) и списка (ListBox), поэтому его еще называют «комбинированным списком» или «полем со списком». Также ComboBox сочетает в себе свойства этих двух элементов управления.

Изначально комбинированный список прорисовывается на форме в виде текстового поля с кнопкой для отображения раскрывающегося списка. Далее по тексту будем использовать слово «поле» в значении текстового поля в составе элемента управления ComboBox, а словосочетание «раскрывающийся список» – в значении списка в составе элемента управления ComboBox.

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

Элемент управления ComboBox незаменим при больших списках. При списках из нескольких позиций его можно заменить на ListBox, который отображает позиции для выбора сразу после загрузки формы, не требуя дополнительных действий от пользователя.

Свойства поля со списком

Свойство Описание
AutoSize Автоподбор размера комбинированного поля. True – размер автоматически подстраивается под длину выбранной или введенной строки. False – размер элемента управления определяется свойствами Width и Height.
AutoTab Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена.
ColumnCount Указывает количество столбцов в раскрывающемся списке. Значение по умолчанию = 1.
ColumnHeads Добавляет строку заголовков в раскрывающийся список. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False.
ColumnWidths Ширина столбцов в раскрывающемся списке. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;).
ControlSource Ссылка на ячейку для ее привязки к элементу управления ComboBox.
ControlTipText Текст всплывающей подсказки при наведении курсора на элемент управления.
Enabled Доступ пользователя к полю и раскрывающемуся списку. True – доступ разрешен, False – доступ запрещен*. Значение по умолчанию = True.
Font Шрифт, начертание и размер текста в поле.
Height Высота элемента управления ComboBox.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края комбинированного списка.
List Позволяет заполнить ComboBox данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам раскрывающегося списка по индексам для записи и чтения.
ListIndex Номер выбранной пользователем строки в раскрывающемся списке. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1.
ListRows Количество видимых строк в раскрытом списке. Если общее количество строк больше ListRows, появляется полоса прокрутки. Значение по умолчанию = 8.
Locked Запрет на отображение раскрывающегося списка, ввод и редактирование данных в поле. True – ввод и редактирование запрещены**, False – ввод и редактирование разрешены. Значение по умолчанию = False.
MatchRequired Задает проверку вводимых в поле строк с элементами списка. True – проверка включена (допускается ввод только строк, совпадающих с элементами списка), False – проверка выключена (допускается ввод любых строк). Значение по умолчанию = False.
MaxLenght Максимальная длина строки в поле. Значение по умолчанию = 0, что означает – ограничений нет.
RowSource Источник строк для раскрывающегося списка (адрес диапазона на рабочем листе Excel).
TabIndex Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0.
Text Текстовое содержимое (значение) поля (=Value).
TextAlign Выравнивание текста в поле: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края комбинированного списка.
Value Текстовое содержимое (значение) поля (=Text).
Visible Видимость поля со списком. True – ComboBox отображается на пользовательской форме, False – ComboBox скрыт.
Width Ширина элемента управления.
Читать:
Сколько весит резервная копия windows 11

* При Enabled в значении False пользователь не может раскрывать список, а также вводить или редактировать данные в поле.
** Для элемента управления ComboBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.

В таблице перечислены только основные, часто используемые свойства поля со списком. Еще больше доступных свойств отображено в окне Properties элемента управления ComboBox, а все методы, события и свойства – в окне Object Browser.

Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ComboBox, а справа смотрите его методы, события и свойства.

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

Способы заполнения ComboBox

Используйте метод AddItem для загрузки элементов в поле со списком по одному:

Работа со списками

Создать на форме 2 списка: один в верхней, а другой в нижней половине формы.

Дважды щелкнуть на форме, чтобы открыть окно программного кода формы. Добавить в процедуру события Form_Loadфрагмент:

Private Sub Form_Load()

Добавить в процедуру события DblClickList1 фрагмент:

List2.AddItemList1.Text’ включить строку в другой список

List1.RemoveItemList1.ListIndex’удалить строку из данного списка

Добавить в процедуру события DblClickList2 фрагмент:

List1.AddItemList2.Text’ включить строку в другой список

List2.RemoveItemList2.ListIndex’удалить строку из данного списка

Запустить программу и двойным щелчком на любой строке списка переместить её в другой список и наоборот.

Т. о. сначала строка добавляется в другой список, а затем уже удаляется из текущего.

Комбинированное поле (ComboBox)

Комбинированные поля сочетают возможности текстового поля и списка. В списке невозможно непосредственно отредактировать строку или выбрать строку, отсутствующую в нем. Имя комбинированного поля использует префикс cbo.

Комбинированное поле может быть раскрывающимся, тогда оно займет в форме меньше места, чем список. В режиме конструирования доступны 3 разновидности комбинированных полей:

При этом тип поля определяется свойством Style.

Хотя комбинированные поля по свойствам, методам и событиям похожи на списки, свойство Textв них работает иначе. Если в списке оно может только вернуть текст выделенной строки, то для комбинированных полей значение этого поля можно задавать и при выполнении программы: текст задается даже в том случае, если строка отсутствует в списке.

Свойства комбинированных полей

Многие свойства такие же, как и для списков.

Особую роль играет свойствоStyleкомбинированного списка. Оно может принимать 3 значения (0 – 2), определяющих вид поля:раскрывающееся комбинированное поле; простое комбинированное поле и раскрывающийся список.

Раскрывающееся поле— похоже на стандартное текстовое, но справа имеется кнопка со стрелкой, которое раскрывает список.

Именно этот вариант называется комбинированным полем.

Простое поле – в котором список постоянно открыт.

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

События комбинированных полей

Change отсутствует в раскрывающихся списках, т. к. в них запрещено редактирование.

DblClickимеет отношение только к простым спискам, т. к. в них можно видеть весь список

Методы комбинированных полей

Совпадают с методами списков (AddItem,Clear,RemoveItemи т. п.)

Комбинированные поля заполняются также вызовами метода AddItemв процедуруLoadформы.

Пример работы с комбинированным полем

Ввести в форму элемент список (ListBox) –List1 и удалить значение свойстваListItemсписка. Ввести комбинированный список (ComboBox) –Combo1 и установить в свойствеStyleзначениеDropdownCombo(комбинированное поле).

Похожие статьи