Как подключить библиотеку DLL ? |
Макросы. Дальнейшая информация об объектах
Объекты, свойства, методы, события (продолжение)
ListBox, ComboBox, TextBox
Использование списков предоставляет большие возможности пользователю. Элемент управления ListBox имеет более 50 свойств. Свойство List задаeт/возвращает содержимое строки списка; свойство ListCount возвращает число элементов списка, нумерация элементов списка проводится с 0. Свойство ListIndex задаeт/возвращает номер маркированной строки ( ListIndex = -1, если ни одна строка не маркирована). Если строки должны быть отсортированы по алфавиту, то свойству Sorted нужно присвоить значение True. Важнейшими из около 10 методов являются:
- AddItem элемент[, индекс] - включить элемент в список в позицию "индекс",
- RemoveItem индекс_элемента - удалить элемент из списка,
- Clear - очистить весь список.
Основное событие - Click, которое вызывается при щелчке на некотором элементе списка; часто применяемое событие - DblClick (двойной щелчок на элементе списка), используемое, например, для программируемого перемещения элементов одного списка в другой список.
В поле элемента управления ComboBox можно выбрать элемент списка как в ListBox, можно вводить данные в имеющееся поле ввода. ComboBox имеет многие свойства ListBox и TextBox. Свойство Style определяет функционирование и внешний вид ComboBox. В табл. 5.3 представлены функциональные возможности элемента управления ComboBox.
Значение свойства Style | Возможности |
0 | ComboBox представляет собой раскрывающееся комбинированное поле - текстовое поле для записи и раскрывающийся список |
1 | Текстовое поле и постоянно открытый список |
2 | Отличие от типа 0 состоит в том, что нет возможности вводить данные |
Основными событиями являются: Click - используется для выбора элемента списка и Change - для изменения записи в поле ввода данных. Методы совпадают с методами поля списка.
При работе со списками часто маркируют строку и затем делают щелчок на командной кнопке, процедура которой обрабатывает маркированную строку. Процедуру обработки элемента списка можно также создавать как процедуру события DblClick списка, выполняемую после двойного щелчка на элементе списка.
Практическая работа 33. ListBox, TextBox, ComboBox
33a. ListBox, TextBox
ListBox: Sorted
- Ввести в ListBox числа 9 - 0 (использовать окно свойств), присвоить свойству Sorted значение True, стартовать проект; убедиться, что элементы списка отсортированы по возрастанию.
ListBox: ListCount, ListIndex, AddItem, RemoveItem:
- Создать на форме элементы управления Label и CommandButton, ввести код, данный ниже:
Private Sub Command1_Click() Dim j As Integer Label1 = List1.ListCount Label2 = List1.ListIndex End Sub
- Заполнить поле списка цифрами 0 - 9: стартовать проект; результат: Label1 = 10, Label2 = -1, т.к. не маркирован ни один элемент списка,
- маркировать элементы списка, делать щелчки на командной кнопке - в поле метки 2 выводится номер выбранного элемента,
- использовать метод AddItem для добавления элементов списка - дополнить процедуру инструкцией:
For j = 10 To 20 List1.AddItem j Next j
- стартовать проект - в список добавляются элементы,
- для удаления элементов списка используется метод RemoveItem. Ввести код процедуры, стартовать проект, сделать щелчок на командной кнопке.
Private Sub Command2_Click() Dim j As Integer For j = 0 To 10 List1.RemoveItem j Next j End Sub
TextBox: GotFocus, LostFocus
Событие LostFocus вызывается после того, как текстовое поле становится неактивным; при "входе" пользователя в текстовое поле вызывается событие GotFocus.
Ввести код, данный ниже; стартовать проект, первая процедура выполняется при установке фокуса в поле Text1 - поле окрашивается и выводится сообщение о получении фокуса.
Private Sub Text1_GotFocus() Text1.BackColor = RGB(255, 0, 0) Label3.Caption = "TextBox имеет фокус" End Sub
Вторая процедура выполняется при переводе фокуса из этого поля; поле окрашивается в другой цвет и выводится соответствующее сообщение:
Private Sub Text1_LostFocus() Text1.BackColor = RGB(0, 0, 255) Label3.Caption = "Потеря фокуса" End Sub
33b. Перемещение элементов списка
- Создать на форме: 3 элементa управления ListBox, элемент управления ComboBox (свойство Style - по умолчанию). Ввести код, данный ниже, стартовать проект, сравнить внешний вид ListBox и ComboBox после открытия пользователем списка ComboBox ; схема размещения элементов дана на рис. 5.1.
- создать элементы списков и комбинированного списка в режиме выполнения процедуры
Private Sub Form_Load() List1.AddItem "ручки" List1.AddItem "карандаши" List3.AddItem "бумага" List3.AddItem "тетради" Combo1.AddItem "бумага" Combo1.AddItem "тетради" Combo1.AddItem "клей" Combo1.AddItem "скрепки" End Sub
- далее ввести код, данный ниже, стартовать проект, сделать повторно несколько двойных щелчков на каких-либо элементах первого списка - элементы перемещаются в другой список. Сделать двойной щелчок на элементах второго списка - происходит перемещение назад.
Private Sub List1_DblClick() Label1 = "Перемещение элементов списков" List2.AddItem List1 ' включить элемент в другой список ' удалить строку из данного списка List1.RemoveItem List1.ListIndex End Sub Private Sub List2_ DblClick() List1.AddItem List2 ' включить элемент в другой список ' удалить строку из данного списка List2.RemoveItem List2.ListIndex End Sub
33с. Дополнение списков, перемещение элементов списков
- Создать на форме элементы управления: ListBox (Name = lst), ComboBox (Name = cboLaden, Style=2), 2 элемента управления CommandButton, TextBox (Name = txt); cхема формы дана на рис. 5.2,
- ввести код процедуры Form_Load () - заполнение ComboBox элементами списка, см. ниже,
- ввести код процедуры Command1_Click () - дополнение ComboBox и ListBox новыми элементами, вводимыми в текстовое поле,
- ввести код процедуры Command2_Click () - перемещение элементов из ComboBox в ListBox,
- стартовать проект, открыть щелчком список ComboBox, маркировать строку ComboBox, сделать щелчок на кнопке Command2 - происходит перемещение элемента,
- ввести в текстовое поле слово "кнопки",
- сделать щелчок на первой командной кнопке (Дополнить) слово "кнопки" выводятся в поля элементов управления.
Рrivate Sub Form_Load() ' заполнение списков cboLaden.AddItem "тетради" cboLaden.AddItem "скрепки" cboLaden.AddItem "карандаши" End Sub ' дополнить поля новыми элементами Private Sub Command1_Click() cboLaden.AddItem txt.Text lst.AddItem txt.Text End Sub Private Sub Command2_Click() ' переместить элемент списка lst.AddItem cboLaden.Text End Sub