logo
Информатика и КГ_2014

8.2. Примеры использования форм

Пример 8.1. Рассмотрим пример работы с формой и элементами управления. На рабочем листе создадим кнопку с именем Работа с формой и форму, изображенную на рис. 8.1.

Рис. 8.1. Форма пользователя

На форме размещено поле (TextBox1) и три кнопки. Названия на этих кнопках можно ввести при создании кнопок, щелкнув по имени, либо, можно в контекстном меню выполнить команду Properties и в свойстве Caption ввести нужное наименование кнопки.

Программа для первой кнопки Положение 1:

Sub CommandButton1_Click()

UserForm1.TextBox1.Text = "Привет"

UserForm1.TextBox1.Top = 10

UserForm1.TextBox1.Left = 10

UserForm1.TextBox1.FontSize = 10

UserForm1.TextBox1.ForeColor = RGB(0, 0, 255)

End Sub

Здесь в текстовое окно помещается слово «Привет». Программным путем меняются свойства Top и Left, определяющие координаты верхнего левого угла текстового поля, выбирается размер шрифта в поле и цвет. RGB(0, 0, 255) определяет красный цвет. Программа для второй кнопки Положение 2 меняет расположение поля, размер и цвет текста в поле:

Sub CommandButton2_Click()

UserForm1.TextBox1.Text = "Привет"

UserForm1.TextBox1.Top = 80

UserForm1.TextBox1.Left = 10

UserForm1.TextBox1.FontSize = 20

UserForm1.TextBox1.ForeColor = RGB(255, 0, 0)

End Sub

Программа третьей кнопки убирает форму с экрана:

Sub CommandButton3_Click()

UserForm1.Hide

End Sub

Программа для кнопки Работа с формой на рабочем листе вызовет появление формы на экране:

Sub CommandButton3_Click()

UserForm1.Show

End Sub

С нажатия этой кнопки можно начать работу. На появившейся форме попеременно нажимая кнопки Положение 1 и Положение 2, можно понаблюдать за изменениями на экране.

Пример 8.2. Рассмотрим пример движения элемента управления через определенные промежутки времени.

Пусть на форме имеется текстовое поле. Программа, приведенная ниже, производит следующие действия: поле окрашивается в зеленый цвет, определяется положение поля на форме и оно меняется 7 раз через одну секунду:

Sub CommandButton1_Click()

UserForm1.TextBox1.BackColor = RGB(0, 255, 0)

For i = 10 To 70 Step 10

UserForm1.TextBox1.Top = 10 + i

UserForm1.TextBox1.Left = 10 + i

If Application.Wait(Now + TimeValue("0:00:1")) Then

End If

Next

End Sub

Встроенная функция Now определяет текущее время, с помощью встроенной функции TimeValue задается интервал времени (в нашем примере – 1 с), метод Wait в приложении (Application) переводит компьютер в режим ожидания на некоторый отрезок времени.

Пример 8.3. Пусть разработана форма, представленная на рис. 8.2.

Рис. 8.2. Ввод информации и вывод результатов

Программа для кнопки Вывод результатов вводит значение х из верхнего поля, рассчитывает значения а, b, z и выводит их в поля TextBox1, TextBox2, а значение z выводит в надпись Label2, расположенную в нижней части формы UserForm1:

Sub CommandButton1_Click()

Dim x As Single, y As Single

Dim a As Single, b As Single, z As Single

x = Val(UserForm1.TextBox1.Text)

y = Format(x, "####.##")

a = (x + y) ^ 2 : b = Sin(a) - Sin(b) ^ 3

UserForm1.TextBox2.Text = "a=" & a

UserForm1.TextBox3.Text = "b=" & b

UserForm1.Label2.Caption = "z = " & 5 * Sin(10) / 3

End Sub

Программу можно запустить нажатием кнопки Run на листе редактора Visual Basic.