Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Элемент управления ComboBox




Комбинированный список (ComboBox) также используется очень часто. Этот элемент управления позволяет пользователю как выбирать "готовые" значения из списка, так и вводить значения самостоятельно (хотя это можно запретить).

Пример элемента управления ComboBox представлен на рис. 4.

 

 

Рис. 4. Комбинированный список (элемент управления ComboBox) на форме

 

Обычно ComboBox используется в двух ситуациях:

• когда пользователю необходимо выбрать одно значение из списка размером от 4-х до нескольких десятков позиций. Если позиций меньше, то проще использовать переключатель (OptionButton), если больше — то ориентироваться в списке становится неудобно и необходимо использовать специальные приемы, когда пользователь вводит первые буквы нужного слова и в списке остаются только значения, которые начинаются с этих букв;

• когда список позиций для выбора необходимо формировать динамически на основании данных из источника (базы данных, листа Excel и т.п.).

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

1) с помощью свойства RowSource. Для этого необходимо предварительно заполнить ячейки листа Exсel требуемыми значениями, а затем указать полученный диапазон непосредственно в окне свойств:

 

 

2) с помощью метода AddItem().

Обычно он помещается в обработчик события Initialize для формы. Применение его может выглядеть так:

 

Private Sub UserForm_Initialize()

ComboBox1.AddItem "Санкт-Петербург"

ComboBox1.AddItem "Ленинградская область"

ComboBox1.AddItem "Москва"

ComboBox1.AddItem "Московская область"

End Sub

3) с помощью свойства List. Данное свойство не отражается в окне свойств, поэтому его необходимо задавать программно. Для этого предварительно необходимо заполнить массив требуемыми значениями, а затем присвоить массив свойству List:

 

ComboBox1.List = A,

 

где A – произвольный массив.

 

Самые важные свойства комбинированного списка представлены далее.

BoundColumn — устанавливает тип, возвращаемый свойством Value. А именно, если свойство BoundColumn равно 0, то свойство Value возвращает индекс выбранной строки, т. е. в этом случае оно действует как свойство ListIndex. Если свойство BoundColumn принимает значение из диапазона от 1 до количества столбцов в списке, то свойство Value возвращает элемент из выбранной строки, стоящий в столбце, определенном свойством BoundColumn.

ColumnCount — устанавливает число столбцов в списке.

ColumnHeads — обеспечивает возможность вывода заголовков столбцов раскрывающегося списка. В качестве заголовков принимаются значения, расположенные непосредственно над диапазоном, указанным в свойстве RowSource (по умолчанию False – не выводятся).

ColumnWidths — устанавливает ширину столбцов списка в точках. Значение данного свойства представляет собой строку из значений ширин колонок, разделенных точкой с запятой, например, «20;30;30» (для 3-х колонок).

ControlSource — устанавливает диапазон (ячейку), в которую возвращается значение свойства Value для выбранного элемента.

TextColumn — устанавливает столбец в списке, элемент которого возвращается свойством Text.

List [*] —возвращает элемент списка, стоящий на пересечении указанных строки и столбца. Синтаксис: List(row, column). Данное свойство также используется для заполнения списка значениями с помощью массива (см. пример выше).

ListCount * — возвращает число элементов списка.

Listlndex * — возвращает номер текущего элемента списка. Нумерация элементов списка начинается с нуля. Данное свойство позволяет определить, какую строку выбрал пользователь. Если никакая строка не выбрана, данное свойство равно (-1).

MatchEntry — определяет, будут ли при вводе пользователем первых символов значения выбираться подходящие позиции из списка. Возможность очень удобная, рекомендуется сохранить значение, которое используется по умолчанию.

MatchRequired — определяет, разрешается ли пользователю вводить то значение, которого нет в списке. По умолчанию False, т. е. разрешено.

RowSource — устанавливает диапазон, содержащий элементы списка.

Value (или Text) — позволяет программным способом установить выбранное значение в списке или получить в переменную выбранное или введенное пользователем значение. Следует отметить, что если для комбинированных списков, состоящих ид одного столбца, данные свойства идентичны, то для комбинированных списков, состоящих из нескольких столбцов, использование данных свойства зависит от установки свойств BoundColumn и TextColumn соответственно. Например, для TextColumn=1 свойство Text возвращает значение первого столбца, для BoundColumn=2 свойство Value возвращает значение второго столбца и т.д. Нумерация столбцов при этом осуществляется с единицы.

Остальные свойства (AutoSize, Enabled, Locked, ControlSource, ControlTipText, MaxLength) применяются точно так же, как и для TextBox.

Главное событие для комбинированного списка — Change, то же, что и для TextBox. Обычно в обработчике этого события проверяются введенные пользователем значения, эти значения переносятся в текстовое поле или в ListBox (если нужно дать пользователю возможность выбрать несколько значений, поскольку свойства MultiSelect у ComboBox нет) и т. п.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...