Элемент управления ListBox(список)
Элемент управления ListBox (список) создается с помощью кнопки Список (ListBox). Элемент управления ListBox применяется для хранения списка значений. Из списка пользователь может выбрать одно или несколько значений, которые в последующем будут использоваться в тексте программы.
Наиболее часто используемые свойства элемента управления ListBox представлены в таблице 19.1, а методы в таблице 19.2.
Таблица 19.1 – Свойства элемента управления ListBox
Свойство | Описание |
ListIndex | Возвращает номер текущего элемента списка. Нумерация элементов списка начинается с нуля |
ListCount | Возвращает число элементов списка |
TopIndex | Возвращает элемент списка с наибольшим номером |
ColumnCount | Устанавливает число столбцов в списке |
TextColumn | Устанавливает столбец в списке, элемент которого возвращается свойством Text |
Enabled | Допустимые значения: True (запрещен выбор значения из списка пользователем) и False (в противном случае) |
Text | Возвращает выбранный в списке элемент |
List | Возвращает элемент списка, стоящий на пересечении указанных строки и столбца. Синтаксис List (row, column) |
RowSource | Устанавливает диапазон, содержащий элементы списка |
ControlSource | Устанавливает диапазон (ячейку), куда возвращается выбранный элемент из списка |
MultiSelect | Устанавливает способ выбора элементов списка. Допустимые значения: -fmMultiSelectSingle (выбор только одного элемента) - fmMultiSelectMulti (разрешен выбор нескольких элементов посредством либо щелчка, либо нажатием клавиши <Пробел>) - fmMultiSelectExtended (разрешено использование клавиши <Shift> при выборе последовательных элементов списка) |
Selected | Допустимые значения: True (если элемент списка выбран) и False (в противном случае). Используется для определения выделенного текста, когда свойство MultiSelect имеет значение fmMultiSelectMulti или fmMultiSelectExtended |
|
|
Таблица 19.2 – Методы элемента управления ListBox
Метод | Описание |
Clear | Удаляет все элементы из списка |
RemoveItem | Удаляет из списка элементы с указанным номером. Синтаксис: Remove Item ( index) index — номер, удаляемого из списка элемента |
AddItem | Добавляет элемент в список Синтаксис: Addltem ( [ Item ,[ VarIndex]] ) -item — элемент, добавляемый в список -varindex — номер добавляемого элемента |
Заполнить список можно одним из следующих способов:
1. Поэлементно, если список состоит из одной колонки
With ListBox1
.AddItem “Июнь”
.AddItem “Июль”
.AddItem “Август”
End With
2. Массивом, если список состоит из одной колонки
With ListBoxl
.List = Array("Июнь", "Июль", Август")
|
|
.Listlndex = 1
End With
3. Из диапазона А1 : B4, в который предварительно введены элементы списка. Результат выбора (индекс выбранной строки) выводится в ячейку С1.
With ListBoxl
.ColumnCount = 2
.RowSource = "A1:B4"
.ControlSource = "С1"
End With
4. Поэлементно, если список состоит из нескольких колонок, например двух
With ListBoxl
.ColumnCount = 2
.Addltem "Июнь"
.List(0, 1) = "Сессия"
.Addltem "Июль"
.List(l, 1) = "Каникулы"
.Addltem "Август"
.List (2, 1) = "Каникулы"
End With
5. Массивом, если список состоит из нескольких колонок, например двух
Dim A (2, 1) As String
A(0, 0) = "Июнь"
A(0, 1) = "Сессия"
A(1, 0) = "Июль"
А(1, 1) = "Каникулы"
A(2, 0) = "Август"
A(2, 1) = "Каникулы"
With ListBox1
.ColumnCount = 2
.List = A
End With
Задание 19.1 Разработать программу, содержащую список.
Вариант 1 Дан одномерный массив. Отсортировать его по возрастанию элементов. Вывести в один список – исходный массив, в другой – отсортированный.
Вариант 2 Дан одномерный массив. Заменить четные числа на 1, нечетные – на -1. Вывести в один список – исходный массив, в другой - преобразованный.
Вариант 3 Дан одномерный массив. Вывести в один список – исходный массив, в другой – только элементы, кратные трем.
|
|
Вариант 4 Вычислить для указанного значения x.
Вариант 5 Вывести члены арифметической прогрессии. Значение первого члена, разность и количество членов задаются (формула n-го члена: an=a1+d(n-1)).
Вариант 6 Вывести члены геометрической прогрессии. Значение первого члена, знаменатель и количество членов задаются (формула n-го члена: bn=b1qn-1).
Вариант 7 Разработать программу, содержащую многостолбцовый список. Рассчитать таблицу значений функции , где x меняется от -2 до 2 с шагом 0.1, а k – параметр, задаваемый пользователем. Таблицу поместить в двухстолбцовый список.
Вариант 8 Составить таблицу перевода километров в мили на интервале от 10 до 50 с шагом 10 (1 миля=1,609 километра). Таблицу поместить в двухстолбцовый список.
Вариант 9 Составить таблицу перевода метров в ярды на интервале от 2 до 10 с шагом 0.5 (1 метр=1,094 ярда). Таблицу поместить в двухстолбцовый список.
Вариант 10 Составить таблицу перевода метров в футы на интервале от 10 до 50 с шагом 5 (1 метр=3,281 фута). Таблицу поместить в двухстолбцовый список.
Вариант 11 Составить таблицу квадратных корней из чисел от а до b с шагом 0.1. Значения а и b задаются (а<b). Таблицу поместить в двухстолбцовый список.
Вариант 12 Дан массив размерность nxm. Найти максимальный по модулю элемент массива. Вывести массив в список и найденный элемент в поле.
|
|
Вариант 13 Дан массив размерность nxm. Найти минимальный элемент массива. Вывести массив в список и найденный элемент в поле.
Вариант 14 Дан массив размерность nxm. Найти индекс минимального элемента массива. Вывести массив в список и найденный индекс в поле.
Пример Создать приложение, которое позволит подсчитать сумму или произведение выбранных в списке чисел.
1.
Перейдем в VBA и, выполнив команду Insert (Вставка) ® UserForm, добавим в проект форму. Расположим на форме элементы управления как показано на рисунке 19.1.
Рисунок 19.1 – Проектируемая пользовательская форма
Назначение размещенных на форме элементов управления представлено в таблице 19.3.
Таблица 19.3 – Назначение элементов управление
Элемент управления | Назначение |
CommandButton1 | Нажатие на кнопку запускает процедуру обработки события (Private Sub CommandButton1_Click()), которое определяет, какой переключатель выбран. В зависимости от выбранного переключателя производится действие над выбранными в списке числами. Найденное значение выводится в поле TextBox1. |
CommandButton2 | Нажатие на кнопку запускает процедуру обработки события (Private Sub CommandButton2_Click()), которая закрывает диалоговое окно. |
ListBox1(список) | Список для ввода чисел |
TextBox1 (поле) | В это поле будет выводиться результат. Поле сделаем недоступным для пользователя, т.е. пользователь не сможет ни ввести, ни скорректировать данные в этом поле |
Label1 (надпись) | Пояснительная надпись для поля вывода |
Frame1 (рамка) | Используется для группировки переключателей |
OptionButton1 OptionButton2 | Выбор переключателя указывает, какая операция будет выполняться над выбранными числами |
2. В модуле формы набираем код программы.
Private Sub CommandButton1_Click() Dim i As Integer Dim n As Integer Dim Сумма As Double Dim Произведение As Double Dim Результат As Double If OptionButton1.Value = True Then Сумма = 0 With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then Сумма = Сумма + .List(i) End If Next i End With Результат = Сумма End If If OptionButton2.Value = True Then Произведение = 1 With UserForm1.ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) = True Then Произведение = Произведение * .List(i) End If Next i End With Результат = Произведение End If TextBox1.Text = CStr(Результат) End Sub | При выборе первого переключателя вычисляется сумма выбранных элементов При выборе второго переключателя вычисляется произведение выбранных элементов Результат выводится в поле TextBox1 |
Private Sub CommandButton2_Click() UserForm1.Hide End Sub | Процедура закрытия диалогового окна |
Private Sub UserForm_Initialize() With ListBox1 .List = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) .ListIndex = 0 .MultiSelect = fmMultiSelectMulti End With With UserForm1.OptionButton1.Value = True .Caption = "Сумма" .ControlTipText = "Сумма выбранных элементов" End With OptionButton2.ControlTipText = "Произведение выбранных элементов" CommandButton2.ControlTipText = "Выход из программы" CommandButton1.ControlTipText = "Нахождение результата" UserForm1.Caption = "Операции над элементами списка" OptionButton2.Caption = "Произведение" Label1.Caption = "Результат" CommandButton1.Caption = "Вычислить" CommandButton2.Caption = "Отмена" Frame1.Caption = "Операция" TextBox1.Enabled = False End Sub | Процедура инициализации диалогового окна Заполнение списка Установка режима выбора (при загрузке формы первоначально будет выбран переключатель «Сумма») Задание текста всплывающих подсказок у элементов управления Задание заголовка пользовательской формы Задание видимых надписей для объектов Инструкция делает TextBox1 недоступным для пользователя |
После конструирования формы и написания кода в модуле формы, выберем команду Run, и на экране появится форма, представленная на рисунке 19.2
Рисунок 19.2 – Спроектированная форма
Дата добавления: 2019-11-16; просмотров: 428; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!