Другие элементы управления
Рамка (является контейнером) - элемент управления Frame. Используется для визуальной группировки элементов управления. Основным свойством является Capture, отображающее надпись рамки.
Флажок и выключатель
Элемент управления CheckBox -флажок. Предоставляет пользователю возможность выбора. Обычно имеет два состояния: установленное и сброшенное, но может настраиваться на выбор из трех альтернатив. Флажок имеет те же свойства Value, Enabled, Visible, Capture, что и переключатель.
Свойство TripleState: False - выбор 2-x:False и True; True - выбор 3-х: False, True, Null.
Элемент ToggleButton - выключатель. Предоставляет те же возможности, что и флажок.
Пример:
Private Sub UserFormlnitialize ()
'Выключатель
ToggleButton 1. Value=True
ToggleButton2.Value=False
ToggleButton3.TripleState=True
ToggleButton3. Value=Null
'Флажок
CheckBoxl. VaIue=True
CheckBox2.Value=False
CheckBox3 TripleState=True
CheckBox3.Value=False
End Sub
Список
ListBox - применяется для хранения списка значений. Из списка выбирается одно или несколько значений.
Свойства:
Listlndex - возвращает номер текущего элемента списка, нумерация начинается с нуля.
ListCount - число элементов в списке.
Toplndex - элемент списка с наибольшим номером.
ColumnCount - устанавливает число столбцов в списке.
TextColumn - устанавливает столбец в списке, элемент которого возвращается свойством Text.
Enable - True - запрещен выбор значений из списка, False - в противном случае.
Text - возвращает выбранный с списке элемент. ;
List — возвращает элемент списка, стоящий на пересечении строки и столбца (List(row,colurrm) - синтаксис).
MultiSelect - устанавливает способ выбора элемента списка.
Значения: fmMiltiSelectSingle - выбор только одного элемента
FmMultiSelectMulti - разрешен выбор нескольких элементов посредством либо щелчка, либо нажатием «Пробел».
FmMultiSelectExtended - разрешено использование «Shift» при выборе ряда последовательностей элементов списка.
ListStyle - значение fmListStylePlain - выбранный элемент из списка выделяется цветом.
FmListStyleOption - перед каждым элементом в списке располагается флажок и выбор элемента из списка соответствует установке флажка.
MatchEntry - выводит 1-й подходящий элемент из списка при наборе его имени на клавиатуре.
Значения: frnMatchEntryNone - режим вывода подходящего элемента в списке отключен.
FmMatchEntryLetter - выводит подходящий элемент по набранной первой букве (желателен список, отсортированный по алфавиту).
FmMatchEntryComplete - выводит подходящий элемент по полному набранному имени.
Наиболее часто используемые методы элемента ListBox:
Clear - удаляет все элементы списка
RemoveItem - удаляет из списка элемент с указанным номером (RemoveItem(index)-синтаксис).
Addltem - добавляет. Addltem([item[,varlndex]])
Item - элемент (строковое выражение), добавляемый в список.
Varlndex - номер добавляемого элемента.
Заполнение списка(спосо6ы):
Поэлементно, если список состоит из одной колонки:
With ListBoxl
.AddItem «Июнь»
.AddItem «Июль»
.AddItem «Август»
.LisrIndex=0
End With
Массивом, если список состоит из одной колонки: With ListBoxl
.List=Array («Июнь», «Июль», «Август»)
.ListIndex=l
End With
Из диапазона А1:В4, в который предварительно введены элементы списка. Результат выбора (индекс выбранной строки) вводится в ячейку С1:
With ListBox1
.ColumnCount=2 — устанавливает число столбцов
.RowSource="Al :В4" - устанавливает диапазон, содержащий элементы списка.
ControlSource="C1" - устанавливает ячейку, куда возвращаются элементы списка.
BoundColumn=0 - возвращает индекс выбранной строки
End With
Поэлементно, если список состоит из нескольких колонок, например двух:
With ListBoxl
.ColumnCount=2
.AddItem «Июнь»
.List(0,l)="Ceccия"
.AddItem="Июль"
.List( 1,1 )="Каникулы"
.AddItem "Август"
.List(2,1 )="Каникулы"
End With
Массивом, если список состоит из нескольких колонок, например
двух:
Dim A(2,l) As String
А(0,0)=»Июнь»: А(0,1 )=»Сессия»
А(1,0)=»Июль»: А( 1,1 )=»Каникулы»
А(2,0)=» Август»: А(2,1 )=»Каникулы»
With ListBox1
.ColumnCount=2
.List=A
End With
Выбор нескольких элементов из списка
Свойство MultiSelect позволяет устанавливать режим, при котором допустим выбор нескольких элементов из списка. Свойство Selected предоставляет возможность проверить, выбран ли элемент с указанным индексом.
Пример использования этих свойств при вычислении среднего значения выбранных в списке элементов:
With ListBox1
.List=Array(l ,3,4,5,6,7,8,9)
.ListIndex=0
.MultiSelect=fmMultiSelectMulti
Среднее=0
N=0
For i=0 to .ListCount-1
if .Selected(i)=True then
N=N+1
Cpeднеe=Cpeднеe+.List(i)
End if
Next i
End With
Среднее=Среднее/N
Пример программы для работы со списком
Задачи: 1) заполнить список
2) выбирать несколько элементов из списка
3) выполнять специфицированные операции над выбраными элементами из списка.
Задание: разработать программу, позволяющую выбрать несколько чисел, выводимых в списке в диалоговом окне с названием Операции над элементами списка. В группе выбора Операция следует установить один из переключателей: Сумма, Произведение, Среднее, т.е. выбрать операцию над выбранными числами. Нажатие кнопки Вычислить должно приводить к выполнению операции и выводу результата в поле Результат.
Предусмотрим дополнительный сервис приложения:
пусть следующие События реализуют действия:
UserForm Initialize - 1) активизирует диалоговое окно; 2) запрещает ввод данных в поле Результат; 3) назначает клавише "Esc" функцию кнопки Отмена, а клавише "Enter" функцию Вычислить; 4) связывает с кнопками Вычислить и Отмена, а также с переключателями всплывающей подсказки.
CommandButtonl_Click (кнопка Вычислить) - 1) определяет какой переключатель выбран. В зависимости от выбранного переключателя нажатие Вычислить производит действие над выбранными в списке числами. 2) Найденное число выводится в поле Результат.
CommandButton2_Click (кнопка Отмена) - закрывает диалоговое
окно.
Private Sub CommandButton l_Click ()
'Процедура проведения вычислений с выбранными элементами
'списка в зависимости от выбранной операции.
Dim i As Integer 'i - вспомогательная переменная
Dim h As Integer 'h - счетчик числа выбранных элементов
Dim Сумма As Double '- сумма
Dim Произведение As Double '-произведение
Dim Среднее As Double '- среднее
Dim Результат As Double '- записывается результат операции.
'При выборе 1-го переключателя вычисляется сумма
If OptionButton1.Value=True Then
Сумма=0
With ListBox1 For i=0 To .ListCount-1
If .Selected(i)=True Then
Cyммa=Cyммa+.List(i)
End if
Next i
End With
Результат=Сумма
End if
'При выборе 2-го переключателя вычисляется произведение
If OptionButton2.Value=True Then
Произведение=1
With ListBoxl For i=0 To ListCount-1
If Selected(i)=True Then
Произведение=Произведение* List(i)
End if
Next i
End With
Результат=Произведение
End if
'При выборе 3-го переключателя вычисляется среднее 'арифметическое
If OptionButton3.Value=True Then
Среднее=0: n=0
With ListBoxl For i=0 To .ListCount-1
If Selected(i)=True Then n=n+l
Cpeднee=Cpeднee+.List(i)
End if
Next i
End With
Результат=Среднее/n
End if
'Результат выводим в поле Результат TextBoxl.Text=CStr(Format(Результат,"Fixed"))
End Sub 'кнопка Вычислить
Private Sub CommandButton2_Click()
'Процедура закрытия диалогового окна
UserForml.Hide
End Sub
Private Sub UserForm_Initialize()
'Процедура инициализации диалогового окна
'Заполнение списка
'Установка режима выбора использованных элементов
With ListBoxl
.List=Array(l,3,4,5,6,7,8,10)
.ListIndex=0
.MultiSelect=frnMultiSelectMulti
End With
'Первоначальный выбор переключателя Сумма при инициализации 'диалогового окна
'Задание текста всплывающих подсказок у переключателей
With OptionButton1
.Value=True
.ControlTipText-'Сумма выбранных элементов"
End With
OptionButton2.ControlTipText ="Произведение выбранных элементов"
OptionButton3.ControlTipText="Cpeднee значение выбранных элементов"
'Поле Результат не доступно для пользователя.
TextBox1.Enabled=False
'Назначение клавише "Enter" функции кнопки Вычислить.
'Задание текста всплывающей подсказки
With CommandButton1
.Default=True
.ControlTipText-'Нахождение результата"
End With
'Назначение клавише "Esc" функции кнопки Отмена
'Задание текста всплывающей подсказки
CommandButton2.Cancel=True
'Задание заголовка пользовательской формы
UserForml.Caption-'Операции над элементами списка"
UserForml. Show
End Sub
Выбор одного из многих вариантов
Select Case - выбор варианта
Синтаксис:
Select Case Выражение
Case ДиапазонЗначений1
ПоследовательностьОператоров 1
Case ДиапазонЗначений2
ПоследовательностьОператоров2
или
Select Case Выражение 1 Case Значение 1
Case Значение2.....
Case Else
ПоследовательностьОператоровN
End Select
Выражение - любое арифметическое или иное выражение. ДиапазонЗначений1, ДиапазонЗначений2,...- одно из значений Выражение, либо границы области значений.
Примеры, исчерпывающие ДиапазонЗначений.
ДиапазонЗначений - выражение после слова Case:
а) -1,1,3,5
б) 6000 То 10000
в) Is > 20000
г) Is <> "Иванов"
д) -1,1,3,5,6000 То 10000, Is>20000
В ДиапазонЗначений может входить :
а) одно из чисел -1,1,3,5;
б) любое число между 6000 и 10000;
в) любое число, превосходящее 20000;
г) любое строковое значение, отличное от "Иванов";
д) любое число из примеров а), б), в);
То, Is - ключевые слова VBA.
Пример программы, использующей оператор выбора
Написать программу, оценивающую знания по физике по следующей системе: за каждую решенную задачу (из пяти) начисляются баллы - за первые две задачи по 6 баллов, за третью и четвертую - по девять баллов, за пятую - 12 баллов. Оценка зависит от суммы набранных баллов так, как показано в таблице:
БАЛЛЫ | ОЦЕНКИ |
Менее 15 | |
От 15 до 24 | |
От 25 до 34 | |
Не менее 35 |
Экранная форма:
Созданы 5 одинаковых объектов - 5 Флажок (Контрольный индикатор) - CheckBox. Щелчок на каждом из них должен изменять значение его свойства Value:
Командных кнопок нет - сигналом к запуску программы будет щелчок мыши на любом из контрольных индикаторов, т.е. выставление флажка. Надо написать 5 совершенно одинаковых процедур для пяти событий - для щелчка мышью по каждому из пяти флажков.
1. Пяти переменным Vl%, V2%, V3%, V4%, V5% присваиваются
значения свойства Value объекта CheckBox.
2. Вызывается процедура Summa, которая присваивает переменной
S% сумму набранных баллов, по значению которой переменной
m% присвоится значение оценки с помощью Case.
Sub Summa (Vl%, V2%, V3%, V4%, V5%, S%, m%)
S=-V1*6-V2*6-V3*9-V4*9-V5*12
' True соответствует целочисленное значение (-1), False - 0.
Select Case S
Case Is< 15
m=2
Case 15 To 24
m=3
Case 25 To 34
m=4
Case Is >=35
m=5
Case Else
m=0
End Select
End Sub
Код любой из 5 процедур:
Private Sub CheckBox Click ()
V1 %=CheckBox1.Value
V2%=CheckBox2.Value
V3%=CheckBox3.Value
V4%=CheckBox4.Value
V5%=CheckBox5 .Value
Call Summa(Vl%, V2%, V3%, V4%, V5%, S%, m%)
TextBox 1.Text=CStr (S)
TextBox2.Text=CStr (m)
End Sub
Элемент управления Image (рисунок)
Используется для отображения графических файлов в формате bmp, cur, ico, gif, jpg, wmf. Основные свойства Image, используемые для управления выводом изображения:
AutoSize - True — рисунок автоматически изменяет размер для того,
чтобы отобразить изображение целиком.
False - в противном случае.
Picture - задает отображаемый графический файл. Используется с
Функцией LoadPicture.
Imagel.Picture=LoadPicture("C:\my_doc\Kpyг.bmp")
Функция LoadPicture (ПолноеИмяФайла) считывает графическое изображение. Чтобы удалить картинку, надо присвоить свойству Picture значение LoadPicture (" ").
PictureSizeMode - устанавливает масштабирование рисунка.
Значения:
FmPictureSizeModeClip - не помещающиеся в границах объекта части рисунка обрезаются.
FmPictureSizeModeStretch - рисунок масштабируется так, чтобы он занимал всю поверхность объекта.
FmPictureSizeModeZoom — рисунок масштабируется с сохранением относительных размеров так, чтобы он помещался целиком внутри объекта.
PictureAlignment - устанавливает расположение рисунка внутри объекта.
Значения:
FmPictureAlignmentTopLeft - в верхнем левом углу
FmPictureAlignmentTopRight - в верхнем правом углу
FmPictureAlignmentCenter - в центре
FmPictureAlignmentBottomLeft - в нижнем левом углу FmPictureAlignmentBottornRight - в нижнем правом углу.
PictureTiling - True - объект покрывается мозаикой из рисунка.
False - в противном случае.
Пример размещения рисунка в объекте. Во всех 4-х случаях рисунок выравнивается по верхнему левому краю объекта.
В 1-м случае: изображение пропорционально масштабируется так, чтобы целиком заполнить область объекта.
Во 2-м: масштабирование непропорциональное.
В 3-м: рисунок размещается произвольно.
В 4-м: область объекта покрывается мозаикой из рисунков.
Private Sub UserForm_Initialize()
' 1
With Image 1
.PictureAlignment=fmPictureAlignmentTopLeft
.PictureAlignment=fmPictureSizeModeZoom
.Picture=LoadPicture("C:\Face.bmp")
End With
' 2
With Image2
.PictureAHgrmient=fmPictureAlignmentTopLeft
.PictureSizeMode=fmPictureSizeModeStretch
.Picture=LoadPicture("C:\Face.bmp")
End With
' 3
With Image3
.PictareAlignment=fmPictureAlignmentTopLeft
.PictureSizeMode=fmPictureSizeModeClip
.Picture=LoadPicture("C:\Face.bmp")
End With
'4
With Image4
. Picture Alignment=fmPictureAlignmentTopLeft
.PictureTiling=True
.Picture=LoadPicture("C:\Face.bmp")
End With
'
End Sub
Пример управления размером и перемещением элемента управления.
Примечание. В файле Dot.bmp хранится изображение "Колобка"
Private Sub CommandButton l_Click( )
‘
'Передвижение колобка по поверхности формы
If Image l.Top>0 And Imagel.Left>0 Then
Image1 .Move Image1.Left=Image1.Left-5
Image1 .Top=Image 1.Top-0
Else Image1.Visible=False
End if
End Sub
Private Sub CommandButton2_Click()
'Изменение размера Колобка
Image1.Height=Image1.Height+3
Image1.Width=Image1.Width+3
End Sub
'Инициализация диалогового окна Private Sub UserForm_Initialize()
With Image 1
'Изображение Колобка хранится в файле Dot.bmp
‘
.Picture=LoadPicture("Dot.bmp")
.PictureAlignment=fmPictureAlignmentTopLeft
.PicteeSizeMode=fmPictureAlignmentModeZoom
.BorderStyle=fmBorderStyleNone
.Visible=True
End With
End Sub
Пояснения:
Left, Top - устанавливают координаты верхнего левого угла элемента управления, определяющие его положение в форме.
BorderStyle - fmBorderStyle - границы в виде контура.
None - невидима.
Дополнение
(методы Basic, "работающие" в автономных средах Visual Basic) [8]
Методы в экранной форме: Print, Cls, Circle, Line, Pset, Scale.
Дата добавления: 2016-02-04; просмотров: 646;