Книга: Офисное программирование
4.2. Элементы управления ComboBox, OptionButton и Frame
Разделы на этой странице:
4.2. Элементы управления ComboBox, OptionButton и Frame
Поле со списком
Элемент управления СотbоВох
(поле со списком) создается с помощью соответствующего элемента. Элемент управления СотЪоВох применяется для хранения списка значений. Он сочетает в себе функциональные возможности списка ListBox и поля TextBox. В отличие от ListBox, в элементе управления СотЪоВох отображается только один элемент списка. Кроме того, у него отсутствует режим выделения нескольких элементов списка, но он позволяет вводить значение, используя поле ввода, как это делает элемент управления TextBox.
Свойства объекта ComboBox, такие как ListIndex, ListCount, Enabled, List, и методы Clear, RemoveItem и AddItem аналогичны соответствующим свойствам и методам списка ListBox. Кроме того, у него есть ряд уникальных свойств:
DropButtonStyle – устанавливает вид раскрывающегося списка. Допустимые значения:
• fmDropButtonStylePlain – кнопка без символов;
• fmDropButtonStyleArrowDisplays – кнопка со стрелкой;
• fmDropButtonStyleEllips – кнопка с эллипсом;
• fmDropButtonStyleReduce – кнопка с линией.
ListRows – устанавливает число элементов, отображаемых в раскрываемом списке.
MatchRequired – допустимые значения: True (нельзя ввести значения) и False (в противном случае).
MatchFound – допустимые значения: True (среди элементов раскрывающегося списка имеется элемент, совпадающий с вводимым в поле ввода раскрывающегося списка) и False (в противном случае).
Переключатель и рамка
Элемент управления OptionButton
(переключатель) создается с помощью соответствующего элемента. Он позволяет выбрать один из нескольких взаимоисключающих параметров или действий. Переключатели обычно отображаются группами, обеспечивая возможность выбора альтернативного варианта (см. п. 3.3).
Элемент управления Frame
(рамка) создается с помощью соответствующего элемента. Он используется для визуальной группировки элементов управления. Основным свойством рамки является caption, отображающее надпись рамки.
Задачи на закрепление материала
Пример 22.[1] Создать программу, которая позволяет при выделении из списка формы нескольких чисел производить суммирование, находить произведение или среднее значение в зависимости от выбора действия (операции).
Нажатие кнопки «Вычислить» должно привести к выполнению выбранной операции над выбранными числами и выводу результата в поле «Результат» (рис. 40).
Рис. 40. Разработанная форма примера 22 в рабочем состоянии
Технология выполнения
Обсудим, как приведенная ниже программа решает перечисленные пункты задачи и что происходит в программе.
UserForm_Initialize
1. Активизирует диалоговое окно
2. Запрещает ввод данных в поле Результат.
3. Связывает с кнопками Вычислить и Закрыть, а также с переключателями всплывающие подсказки
Нажатие кнопки Вычислить запускает на выполнение процедуру CommandButton1_Click
Определяет, какой переключатель выбран. В зависимости от выбранного переключателя производит действие над выбранными в списке числами. Найденное число выводится в поле Результат
Нажатие кнопки Закрыть запускает на выполнение процедуру CommandButton2_Click
Закрывает диалоговое окно
Процедура нажатия кнопки «Вычислить» производит вычисления с элементами списка в зависимости от выбранной операции. Вводятся переменные n и i, где n играет роль счетчика числа выбранных элементов из списка, а i – вспомогательная переменная. Также вводятся переменные, которые будут содержать результат вычислений: сумма, произведение и среднее. Все полученные вычисления присваиваются переменной Результат, которая и выдается в текстовое поле.
Процедура нажатия кнопки Вычислить
Private Sub CommandButton1_Click ()
Dim i As Integer
Dim n As Integer
Dim Сумма As Double
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 ListBox1
For i = 0 To.ListCount – 1
If.Selected(i)=True Then
Произведение = Произведение *.List(i)
End if
Next i
End With
Результат = Произведение
End If
' При выборе третьего переключателя вычисляется среднее арифметическое
If OptionButton3.Value = True Then
Среднее = 0
n = 0
With ListBox1
For i =0 To.ListCount – 1
If.Selected(i)=True Then
n=n+1
Среднее = Среднее +.List(i)
End if
Next i
End With
Результат = Среднее /n
End If
' Полученное значение Результат выводится в текстовое поле
TextBox1.Text = CStr(Format(Результат, «Fixed»))
End Sub
Процедура нажатия кнопки «Закрыть»
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Процедура инициализации диалогового окна заключается в заполнении списка и выводе его на форме, организации всплывающих подсказок, запрещении ввода текста в поле результата на форме.
Private Sub UserForm_Initialize()
With ListBoxl
List = Array(1, 3, 4, 5, 6, 7, 8, 10)
Listlndex = 0 'начальная индексация массива
MultiSelect=fmMultiSelectMulti
End With
' Первоначальный выбор переключателя Сумма при инициализации диалогового окна и задание текста всплывающих подсказок у переключателей With OptionButton1.Value = True
ControlTipText ="Сумма выбранных элементов"
End With
OptionButton2.ControlTipText ="Произведение выбранных элементов"
OptionButton3.ControlTipText = «Среднее значение выбранных элементов»
' Поле Результат не доступно для пользователя
TextBox1.Enabled = False
' Назначение клавише <Enter> функции кнопки Вычислить и задание текста всплывающей подсказки
With CommandButton1
Default = True
ControlTipText = «Нахождение результата»
End With
' Назначение клавише <Esc> функции кнопки Закрыть и задание текста всплывающей подсказки
CommandButton2.Cancel = True
' Задание заголовка пользовательской формы
UserForm1.Caption = «Операции над элементами списка»
UserForm1.Show
End Sub
Примечание. Интересной особенностью приводимой процедуры инициализации UserForm_initialize является то, что заголовок диалогового окна вводится программно при помощи свойства Caption, а не вручную при помощи окна Properties.
Пример 23. Разработать программу нахождения среднего балла студентов, выбранных из списка в диалоговом окне «Средний балл». Список содержит фамилию студента и его средний балл (двумерный массив) (рис. 41).
Рис. 41. Разработанная форма примера 23 в рабочем состоянии
Дополнительно для каждого элемента управления следует прописать процедуры для осуществления всплывающих подсказок.
При выполнении задания опирайтесь на приводимые ниже примечания.
Примечание. Обратите внимание на то, что в отличие от примера 22 данный пример требует ввода двумерного списка: столбца фамилий и столбца оценок. Фактически разница заключается лишь в том, что в приведенном примере массив ListBoxl.List, отвечающий за список элементов, был одномерным, а в данном случае должен быть двумерным. Сделать это можно двумя способами:
• непосредственно заполнить двумерный массив ListBoxl.List;
• задать произвольный двумерный массив, а затем присвоить его значение для ListBoxl.List (см. п. 3.1 и 4.1).
Соответственно, для расчета среднего балла следует воспользоваться только элементами второго столбца массива, т. е. вторая координата массива ListBoxl.List должна быть фиксирована на 1 (если индексация массива положена с нуля) или на 2 (если индексация массива положена с 1).
- Глава 3 Элементы управления
- Основные "рычаги" управления производительностью
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- 6.4. Рабочий лист Excel и его структурные элементы
- 1. Системы управления базами данных
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- 4.8 Методы управления Fibre Channel
- 7.9 Будущее управления хранилищами по версии ассоциации SNIA: стандарты SMI
- 15.1.3. Обработка сигналов управления заданиями
- Группа управления конфигурацией ПО
- Вложение файлов в элементы списков