Элемент управления 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!