Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Форма(свойства_методы)_ДругиеЭлементы(09_02).docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
57 Кб
Скачать
☆

Пример создания формы

Пусть требуется создать форму для ввода информации о студенте (для работы с ранее созданным классом CStudent). Такая форма может содержать несколько элементов управления, связанных с соответствующими свойствами объектной переменной класса CStudent. Кроме того, имеет смысл разместить на форме пару кнопок: подтверждение добавления и отмена операции. Такая форма может быть создана следующим образом:

  1. После добавления

  2. бавлен функциональный код, приведенный и прокомментированный в листинзаготовки формы (меню "Вставка/UserForm"), ее имя (свойство Name) изменено на frmAddStudent.

  3. На форму были добавлены следующие элементы управления: TextBox, Label, OptionButton, CommandButton. Элементам TextBox, предназначенным для ввода данных пользователем, заданы имена (свойство Name) txtLName, txtFName, txtMName, txtContacts, txtBDay. Элементам Label заданы надписи (свойство Caption) "Фамилия:", "Имя:", "Отчество" и т.д. Элементы OptionButton, используемые для указания пола студента, получили имена optMale и optFemale. Эти элементы сгрупппированы с помощью рамки (Frame). Для подтверждения ввода или отмены действий на форму добавлены 2 кнопки (CommandButton). Первой из них задано имя (свойство Name) btnAdd и надпись (свойство Caption) "Принять", второй - btnCancel и "Отмена" соответственно.

  4. Далее, размещенные элементы были спозиционированы путем изменения размеров и положения через указание значений свойств Left, Top, Width и Height.

  5. В завершении были созданы (двойной клик на соответствующем элементе) заготовки обработчиков событий для кнопки btnAdd и btnCancel. Заготовка обработчика события инициализации формы была создана путем выбора этого события из списка доступных методов ("Редактор формы/Declarations/initialize")

  6. В проект был добавлен дополнительный модуль с именем General (листинг 30), где описаны общие данные проекта, в частности переменная stud (CStudent) и макрос sample33, из которого вызывается форма frmAddStudent.

  7. В созданные обработчики событий доге 2.1.

Листинг 2. Модуль General

Option Explicit ' явное описание переменных

Public stud As New CStudent ' экземпляр класса CStudent

Public Const AppName = "БД Деканат"

Sub sample32()

frmAddStudent.Show '

Показать форму

End Sub

Листинг 2.1. Модуль формы frmAddStudent

' Событие происходит в момент первого вызова формы

Private Sub UserForm_Initialize()

Caption = AppName & ": Добавление студента"

' Заголовок формы

' Задаем значение по умолчанию в поле ввода даты рождения

txtBDay = Format(Date, "DD.MM.YYYY")

End Sub

' Событие происходит по клику на кнопке "Принять" (btnAdd)

Private Sub btnAdd_Click()

With stud ' Записываем значения полей ввода в свойства объекта stud

.LastName = txtLName.Value

.FirstName = txtFName.Value

.MiddleName = txtMName.Value

.BirthDay = CDate(txtBDay.Value)

.Contacts = txtContacts.Value

' Проверяем значения элементов OptionButton

' Если установлен optMale, то в свойство stud.Gender пишем "муж",...

If optMale.Value Then

.Gender = "муж"

ElseIf optFemale.Value Then '... иначе - "жен"

.Gender = "жен"

End If

Debug.Print .FullInfo

' отображаем информацию о студенте в отладчике

End With

' Уведомляем пользователя о добавлении записи и ждем дальнейших указаний

' Если пользователь нажмет "Отмена", то скрываем форму (метод Hide)

msg = "Запись добавлена." & vbCrLf & "Продолжить?"

If MsgBox(Prompt:=msg, Title:=AppName, Buttons:=vbOKCancel + vbInformation) = vbCancel Then Hide

End Sub

' Событие происходит при выборе кнопки "Отмена" (btnCancel)

Private Sub

btnCancel_Click()

Hide ' скрываем форму

End Sub

Как видно из приведенного примера, использование визуальных средств разработки делает процесс проектирования пользовательского интерфейса программы более наглядным и быстрым. Основной акцент переносится непосредственно на решение прикладной задачи. При этом сохраняется возможность программного управления всеми элементами управления.