Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual_Basic_metodichka.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.59 Mб
Скачать

Проверка введенных данных

Чтобы быть уверенным в правильности вводимых данных, необходимо проверить содержимое введенной строки, когда она должна представлять числовое значение. Встроенная функция 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]