- •Строки
- •События, связанные с клавиатурой
- •Списки
- •Управляющий элемент ListBox
- •List
- •Внешний вид: стандартный или с флажком
- •Содержит количество строк в списке
- •Описание
- •Управляющий элемент ComboBox
- •Изменение характеристик шрифта
- •Количество экранных и принтерных шрифтов
- •Файлы
- •Режимы доступа к файлам
- •Текстовые файлы
- •Управляющие элементы для работы с файлами
- •Открыть диалог установка параметров принтера
Списки
Управляющий элемент ListBox
Список ListBox позволяет выбирать один или несколько элементов, добавлять новые или удалять существующие элементы из списка. Если не все элементы умещаются в списке, то автоматически будут добавлены полоски прокрутки. Свойство MultiSelect=2 позволяет одновременно выбрать несколько элементов из списка с помощью мыши или комбинациями клавиш управления курсором и клавиш SHIFT и CTRL. Когда свойство MultiSelect=0, то множественный выбор невозможен. Обычно ListBox предназначен для объединения в простой список однотипной информации.
|
Основные свойства и методы элемента ListBox |
Таблица 15 |
Свойство |
Описание |
|
List |
Содержит список значений |
|
|
|
|
|
|
|
Sorted |
Если оно True, то выполняется алфавитная сортировка списка |
|
Style |
Внешний вид: стандартный или с флажком |
|
|
|
|
|
|
|
ListCount |
Содержит количество строк в списке |
|
|
|
|
ListIndex |
Содержит номер выделенной строки. Первый элемент списка имеет |
|
|
номер 0. Если ListIndex= –1, то формируется пустая строка |
|
Text |
Содержит выделенный в списке текст |
|
List(n) |
Содержит текст (n+1) строки списка |
|
Метод |
Описание |
|
|
|
|
|
|
|
Addltem |
Добавляет элемент в список |
|
Removeltem |
Удаляет строку из списка |
|
Clear |
Удаляет все элементы списка |
|
Свойства List, Sorted, Style доступны в режимах конструирования и выполнения приложения. Для заполнения списка в режиме конструирования используется свойство List, при этом ввод каждого элемента списка должен заканчиваться нажатием Ctrl+Enter.
Для заполнения списка в коде программы применяется метод Addltem. Например,
List1.Addltem "BMW X5" List1.Addltem "Ford Focus 2", 2
Строка "BMW X5" будет добавлена в конец списка. Если же установлено свойство Sorted=True, то положение этой строки будет определяться порядком сортировки. Строка "Ford Focus 2" будет третьей по счету.
Событие Click происходит тогда, когда пользователь в режиме выполнения выбирает строку в списке.
Пример 27. Продемонстрировать работу с тремя списками ListBox. Первые два списка содержат марки автомашин, вывозимых из Германии и Японии, а третий список – ввозимых в Россию. Третий список заполняется двумя щелчками мыши по элементу любого из первых двух списков или, используя технологию Drag&Drop, – над несколькими выделенными элементами списка.
Создадим из двух первых списков массив объектов List1 и заполним их в режиме конструирования, используя свойства List, марками автомашин, ввозимых из Германии и Японии. В строке сообщения Label1 выведем страну-производителя, номер выделенной строки, количество строк в списке и текст выделенной строки соответствующего списка (марка автомашины). Для этого воспользуемся процедурой List1_Click. В процедуре обработки события DblClick запрограммируем процесс переноса элемента списка массива в другой список List2. В процедуре обработки события OLECompleteDrag запрограммируем процесс копирования выделенных мышью элементов соответствующего списка массива в список
List2.
Вполе Text1 выведем страну-производителя и марки автомобилей, выделенных в соответствующем списке массива и копируемых с помощью технологии Drag&Drop в список List2. Для этого воспользуемся процедурой
List1_OLEStartDrag.
Впроцессе передачи фокуса от одного элемента массива объектов List1 другому необходимо снять выделение с элемента противоположного списка. Эти действия необходимо запрограммировать в процедуре List1_GotFocus, которая происходит всегда при получении фокуса.
Разместите списки на форме, как показано на рис.35, и настройте их свойства в режиме конструирования:
List1(0).MultiSelect = 2 и List1(1).MultiSelect = 2.
Свойства List1(0).OLEDragMode=1 и List1(1).OLEDragMode=1
позволяют осуществить процесс копирования мышью выделенных элементов списка List1, а свойство List2.OLEDropMode=1 – осуществить процесс приема элементов списка, используя технологию Drag &Drop (Перетащи и Положи).
Рис.35. Окно формы в режиме конструирования
Dim pr As String
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Text1 = "" List1(0).OLEDragMode = 1 List1(1).OLEDragMode = 1 List2.OLEDropMode = 1
End Sub
Private Sub List1_Click(Index As Integer) u% = List1(Index).ListIndex
c% = List1(Index).ListCount
If Index = 0 Then pr = "ГЕРМАНИЯ # " Else pr = "ЯПОНИЯ # " s$ = List1(Index).Text
St$ = pr & " Index: " & u & " Count: " & c & " - " & s Label1 = St
End Sub
Private Sub List1_DblClick(Index As Integer)
List2.AddItem List1(Index).Text List1(Index).RemoveItem List1(Index).ListIndex
End Sub
Private Sub List1_GotFocus(Index As Integer)
If Index = 0 Then
For i = 0 To List1(Index + 1).ListCount - 1 If List1(Index + 1).Selected(i) Then List1(Index + 1).ListIndex = i
List1(Index + 1).Selected(i) = Not List1(Index + 1).Selected(i) End If
Next
Else
For i = 0 To List1(Index - 1).ListCount - 1 If List1(Index - 1).Selected(i) Then