
- •Содержание
- •1. Понятие о стандартных элементах управления
- •Добавление элементов управления в форму
- •Выбор имен для элементов управления
- •2. Основные свойства элементов управления
- •Позиция
- •Свойства BackColor, ForeColor, FillColor
- •Параметры шрифта
- •Доступность и видимость элемента управления
- •Свойство Enabled
- •Свойство Visible
- •Свойство Name
- •Внешний вид
- •3. Основные события Windows
- •4. Работа с текстом
- •4.1. Отображение текста в полях типа Label
- •4.2. Ввод текста в текстовые поля (TextBox)
- •Проверка введенных данных
- •5. Элементы управления для принятия решения
- •5.1. Кнопка (Элемент CommandButton)
- •5.2. Флажок (элемент Check Boxes)
- •5.3. Переключатель (элемент Option Button)
- •5.4. Список (Элемент ListBox)
- •Основные свойства, устанавливаемые в режиме проектирования
- •Методы элемента ListBox
- •Основные свойства, устанавливаемые в режиме разработки программы
- •Индексирование с помощью элемента ListBox
- •Локализация пункта элемента ListBox
- •5.5. Поле со списком (элемент ComboBox)
- •Установка начального значения
- •6. Элементы управления специального назначения
- •6.1. Полосы прокрутки (VscrollBar и HscrollBar)
- •Создание полосы прокрутки
- •Изменение величины перемещения
- •Отображение значения свойства Value на экране
- •6.2. Таймер (элемент управления Timer)
- •Работа с таймером
- •6.3. Рамка (элемент Frame)
- •7. Массив элементов управления
- •Преимущества массивов элементов управления
- •Создание массива элементов управления
- •Написание кода для массива элементов управления
- •8. Использование графики
- •Элемент ImageBox (Изображение)
- •Элемент PictureBox
- •Использование объекта Picture для вывода текста и графических элементов
- •Линии и контуры
- •9. Элементы управления файлами
- •Литература
Проверка введенных данных
Чтобы быть уверенным в правильности вводимых данных, необходимо проверить содержимое введенной строки, когда она должна представлять числовое значение. Встроенная функция IsNumeric() возвратит значение True, если строка окажется числом, и значение False, если строка не числовая. Рассмотрим два примера, которые используют эту функцию. В первом – в случае ввода в текстовое окно не числовой информации – на экран выводится сообщение «Ошибка» и фокус ввода остается в этом окне до тех пор, пока не будет правильно заполнено текстовое окно:
Пример 1.
Private Sub Txt1_LostFocus()
If Not IsNumeric(Txt1) Then
MsgBox «Ошибка!»
Txt1.SetFocus
End If
End Sub
Пример 2. Фрагмент программы не позволяет вводить нецифровые символы. При этом знак «+» и «-» могут быть введены только в 1-ю позицию. Оригинальность программы состоит в том, что при вводе данных из буфера обмена вставка может быть только в том случае, если в целом полученная цепочка символов имеет строго цифровое представление.
Private Sub Txt1_Change()
Dim log As Boolean
Static old_dl As Integer
log = Len(Txt1)=0 Or Len(Txt1)=1 And (Left$(Txt1,1) = "+" Or _
Left$(Txt1, 1) = "-")
If log Or IsNumeric(Txt1) Then old_dl = Len(Txt1): Exit Sub
Txt1.SelStart = Txt1.SelStart - (Len(Txt1) - old_dl)
Txt1.SelLength = Len(Txt1) - old_dl
Txt1.SelText = ""
End Sub
5. Элементы управления для принятия решения
Существует тип вопросов, на которые заранее можно дать однозначный ответ «Да/Нет» или «Женат/Холост», т.е. заранее можно предложить небольшой список готовых ответов. В таблице 5.1 перечислены основные элементы для принятия решения и дано их краткое описание.
Таблица 5.1.Элементы управления, предназначенные для принятия решения
|
CommandButton |
Кнопка |
Служит для инициирования некоторых действий программы после щелчка на ней кнопкой мыши. |
|
CheckBox |
Флажок |
Служит для установки и отображения логических (типа Да/Нет) параметров программы. |
|
OptionButton |
Переключатель |
Служит для выбора одного параметра из нескольких, представленных в группе. |
|
ComboBox |
Поле со списком |
Позволяет пользователю выбрать одно значение из списка, а также ввести новое значение в текстовое поле. |
|
ListBox |
Список |
Служит для выбора элемента из списка. |
5.1. Кнопка (Элемент CommandButton)
Элемент CommandButton предназначен для инициирования пользователем в программе некоторых действий, которые начинают происходить после щелчка на нем кнопкой мыши. Для его создания в режиме проетирования при двойном щелчке на кнопке формируется процедура отклика нажатия кнопки <имя кнопки>_Click()
Таблица 5.1.1. Общие свойства элемента управления CommandButton
Свойство |
Описание |
BackColor |
Задает цвет фона командной кнопки. Щелкните на стрелке «вниз» палитры Back Color, чтобы увидеть перечень цветов и щелкните System чтобы увидеть перечень наиболее употребительных цветов элементов управления Windows. Перед тем, как командная кнопка отобразит цвет фона, вам необходимо изменить свойство Style с 0-Standard на 1-Graphical |
Cancel |
Определяет, получает ли командная кнопка событие Click, если пользователь нажимает на Esc. |
Caption |
Содержит текст, который отображается на командной кнопке. |
Default |
Определяет, реагирует ли командная кнопка на нажатие на клавишу Enter, даже если какой либо другой элемент управления имеет фокус. |
Enabled |
Определяет является ли командная кнопка активной Часто вы будете изменять свойство Enabled кодом во время выполнения приложения когда командная кнопка больше не будет нужна и вы захотите сделать ее недоступной. |
Font |
Выдает диалоговое окно Font в котором можно установить имя шрифта заголовка начертание и размер |
Height |
Содержит высоту командной кнопки в твипах |
Left |
Содержит число твипов между левым краем командной кнопки и левым краем окна Form |
MousePointer |
Определяет вид курсора мыши, когда пользователь помещает мышь поверх командной кнопки. |
Picture |
Содержит имя графического изображения значка которое отображается на командной кнопке, если свойство Style установлено на 1-Graphical |
Style |
Определяет, отображается ли командная кнопка как стандартная командная кнопке Windows (если установлено на 0-Standard) или как командная кнопка с цветом и возможным изображением |
Tablndex |
Указывает порядок командной кнопки в фокусном порядке |
TabStop |
Определяет, может ли командная кнопка принимать фокус |
ToolTipText |
Содержит текст, который появляется как подсказка ToolTip во время выполнения приложения |
Top |
Содержит число твипов между верхним краем командной кнопки и верхним краем окна Form |
Visible |
Определяет, отображается ли командная кнопка или является скрытой от пользователя (Невидимые элементы управления не могут принимать фокус до тех пор, пока выполняющийся код не изменит свойство Visible на True ) |
Width |
Содержит ширину командной кнопки в твипах |
Хотя большинство пользователей предпочитают щелкать на кнопках мышью, некоторые все же любят пользоваться клавиатурой и вводить команды исключительно с ее помощью. Это легко сделать, назначив кнопке клавишу быстрого доступа. Тогда, если пользователь нажмет клавишу <Alt> и не отпуская ее, нажмет указанную на кнопке клавишу быстрого доступа, возникнет событие Click для данной кнопки формы.
Клавиша быстрого доступа назначается в момент присвоения значению свойству Caption. Поместите в строке, которая будет присвоена свойству Caption, символ амперсанда (&) перед буквой, соответствующей желаемой клавише быстрого доступа. Например, если вы хотите, чтобы после нажатия комбинации клавиш <Alt+P> срабатывала кнопка, на которой написано Print, присвойте свойству Caption этой кнопки строку &Print. Сам символ амперсанда не будет отображен на кнопке, вместо этого следующий за ним символ будет подчеркнут, в результате на кнопке появится надпись Print. Это означает, что для данной кнопки выбрана комбинация клавиш быстрого доступа <Alt+P>.
П
ример
1. На форме находятся следующие элементы
управления: текстовое окно Txt1,
3 кнопки Cmd1,
Cmd2,
Cmd3.
Щелкая на кнопке Cmd1
в текстовом окне должно появляться
слово Ура, щелкая
на кнопке Cmd2
– текстовое окно должно быть очищено,
нажав на кнопку Cmd3
программа должна завершить свою работу
и подать звуковой сигнал.
Рис. 5.1.1. Форма к примеру №1
Private Sub Cmd1_Click()
Txt1.Text = Cmd1.Caption
End Sub
Private Sub Cmd2_Click()
Text1.Text = ""
End Sub
Private Sub Cmd3_Click()
Beep
End
End Sub
Пример 2. На форме находятся текстовое окно и кнопка. По щелчку мыши требуется, чтобы в текстовом окне появлялась дата и текущее время.
Private Sub Cmd1_Click()
Txt1.Text = "Сегодня: " & Date$ & " Текущее время: " & Time$
End Sub
Вместо функций Date$ и Time$ можно использовать Now:
Label1.Caption = “Дата и время: ” & Now
П
ример
3. С помощью текстовых окон произвести
ввод переменных Х и Y и
найти сумму этих двух чисел. Результат
вывести в текстовое окно Txt3.
Рис. 5.1.2. Форма к примеру №3
Вариант решения 1.
Dim x As Double, y As Double, z As Double
Private Sub Cmd1_Click()
If IsNumeric(Txt1)=True And IsNumeric(Txt2)=True Then
x = Txt1.Text
y = Txt2.Text
z = x + y
Txt3.Text = z
Else
MsgBox "Ошибка ввода данных", vbCritical, "Сообщение"
Exit Sub
End Sub
Private Sub Сmd2_Click()
End
End Sub
Вариант решения 2.
Private Sub Cmd1_Click()
If IsNumeric(Txt1)=False Or IsNumeric(Txt2)=False Then
MsgBox "Ошибка ввода данных", vbCritical, "Сообщение"
Exit Sub
End If
Txt3=CDbl(Txt1)+Txt2
End Sub
Вариант решения 3.
Private Sub Cmd1_Click()
If IsNumeric(Txt1)=False Or IsNumeric(Txt2)=False Then
MsgBox "Ошибка ввода данных", vbCritical, "Сообщение"
Exit Sub
End If
Txt3=Txt1*1+Txt2
End Sub