Форма. Основные свойства и события формы
Форма является основой любого приложения. Любой проект VISUAL BASIC содержит как минимум одну форму, которая представляет собой главное окно приложения.
Форма храниться в отдельном файле, это позволяет подключать одну и ту же форму к разным проектам.
Форма является контейнером, который может содержать различные объекты (элементы управления), являющиеся элементами интерфейса.
К элементам управления, размещенным в форме можно обращаться как к переменным, присваивая значения их свойствам или считывать их.
Свойства определяют внешний вид и функционирование элемента управления.
Значения свойствам элементов управления могут быть присвоены двумя способами:
1) В окне Properties (свойства) для выбранного в форме элемента управления.
2) В процедуре модуля формы:
[Форма.]Объект.Свойство = Значение
Например: Text1.Text=”Иванов”
Значение свойства элемента управления может быть присвоено переменной:
Переменная = [Форма.]Объект.Свойство
Например: Fam= Text1.Text
Основные свойства формы:
Name – задает уникальное имя (идентификатор) формы, который затем используется в программных модулях при обращении к форме.
Caption – задает текст, выводимый в заголовок окна.
Height (высоту) и Width (ширину)– задают размер формы.
Left (расстояние от левого края экрана) и (расстояние от верхнего края экрана) - определяют положение формы на экране.
ScaleMode - задает единицу измерения свойств Height, Width, Left и Top. По умолчанию стандартной единицей является твип.
BorderStyle – определяет вид и установку рамки окна. С помощью рамки можно менять не только внешний вид окна, но и размеры. Свойство может иметь значения:
0 -Окно без рамки. Размер окна изменяться не может. Нет строки заголовка. Окно не может перемещаться. Минимизация и максимизация окна не возможны.
1- Фиксированная рамка. Есть заголовок, кнопки минимизации и максимизации окна, но размер окна меняться не может.
2- Значение по умолчанию. Возможны все изменения размера окна.
3- Окно окаймляется толстой рамкой. Изменения размера невозможны. Нет кнопок минимизации и максимизации. Минимизировать и максимизировать можно только из системного меню.
ControlBox - определяет, отображается ли системное меню, с помощью которого пользователь может выйти из программы.
MaxButtonопределяет наличие кнопки максимизации. При значении False кнопка будет отсутствовать, а команда Развернуть удалится из системного меню.
MinButton определяет наличие кнопки свертывания окна. При значении False кнопка затемняется, а из системного меню удаляется строка Свернуть.
Font задает шрифт в окне.
ForeColor задает цвет выводимого в окне текста.
Icon задает значок для формы.
WinwowState управляет состоянием окна при запуске и может принимать следующие значения: нормальное окно, свернутое окно и полное окно.
MDIChild управляет превращением окна типа MDI в дочернее. Форма дочерняя, если свойство имеет значение True. Значение по умолчанию False.
Основные события формы
К наиболее важным событиям формы относятся следующие:
Initialize – происходит в момент создания экземпляра объекта типа форма.
Load - происходит при загрузке формы в память до ее визуального отображения. Используется для инициализации объектов и переменных, принадлежащих форме.
Aktivate – происходит в тот момент, когда форма становится активной (момент отображения на экране или переключения из другой формы).
GotFocus – происходит при установке фокуса на активизируемой форме.
Deactivate – происходит при удалении формы с экрана, или при переключении на другую форму.
Unload - вызывается, когда форма удаляется из памяти.
Resize – происходит при изменении размеров формы.
Порядок возникновения событий при работе с формой следующий: Initialize, Load, Activate, GotFocus. После загрузки формы в память события Activate, GotFocus, Deactivate могут возникать многократно.
Процедуры обработки события формы имеют следующий синтаксис:
Form_Событие[(Аргументы)]
Отображение формы
При запуске приложения автоматически отображается так называемая стартовая форма. Стартовая форма – это первичное (главное или родительское) окно приложения.
Имя стартовой формы задается в окне Project Properties, которое открывается при выполнении команды Project Properties из меню Project или из контекстного меню проекта в окне проводника.
Если проект содержит несколько форм, то необходимо обеспечить взаимодействие форм друг с другом.
На текущее состояние формы влияют:
Оператор Load– выполняет загрузку формы в память, форма при этом она не отображается на экране. Формат оператора:
Load ИмяФормы
Оператор Load загружает форму явным образом. Однако форма может быть загружена и неявным способом (автоматически). Это произойдет, если в процедуре выполняется обращение к свойству, методу самой формы или любого элемента управления размещенного в форме.
Метод Show формы позволяет загрузить форму неявным способом и отобразить ее на экране. Вызов метода:
ИмяФормы.Show
Форма может быть отображена в обычном или модальном окне. Обычная форма позволяет пользователю переходить в другую форму. Модальная же форма держит фокус до тех пор, пока окно не будет закрыто. Чтобы отобразить форму в модальном окне следует в качестве параметра указать константу vbModal.
Например: Student.Show vbModal
Метод Hide удаляет форму с экрана, не выгружая ее из памяти. Метод используется для скрытия формы, предоставляю приложению возможность пользоваться введенной в нее информацией.
Оператор UnLoad убирает форму с экрана и выгружает ее из памяти. Формат оператора:
UnLoad ИмяФормы
Оператор UnLoad можно использовать для выгрузки текущей формы. Ссылку на текущую форму можно получить с помощью свойства Me. Тогда для выгрузки текущей формы можно написать оператор: UnLoad Me.
Меню. Создание меню
Меню – один из основных элементов интерфейса. Оно представляет собой средство быстрого доступа ко всем командам (задачам) приложения.
VISUAL BASIC позволяет создавать иерархическое меню. Максимальное количество уровней – шесть.
При проектировании меню следует сгруппировать команды, выполняющие однотипные действия и присвоить этим группам имена. Имена групп образуют команды верхнего уровня меню, меню первого уровня. При выборе элемента меню первого уровня автоматически открывается меню второго уровня, которые "выпадают" в виде списка.
Присваивая имена группам, следует по возможности придерживаться стандартных названий команд меню и их расположения.
Например: Файл, Правка, Вид, ?(Справка)
На рис. 7.20 приведен пример двухуровнего меню.
Создание меню в VISAUL BASIC осуществляется с помощью редактора меню. Открывается окно редактора меню командой Tools\Menu\Editor…
Каждая строка (пункт) меню является элементом управления этого меню и имеет набор свойств. Значения свойствам задаются в окне редактора меню (см. рис.7.21).
Редактор состоит из двух групп элементов:
элементы управления свойствами;
элементы конструирования структуры меню.
С помощью элементов управления свойствами можно задать значения свойствам, имеющим следующее назначение:
Свойство Caption задает наименование пункта меню (вводится текст, который будет виден в строке меню).
Свойство Name назначает имя элементу управления меню, используемое в программном коде. Имя не назначается по умолчанию и должно быть обязательно задано.
При назначении имен элементам меню желательно соблюдать определенные правила. Имя должно состоять из следующих частей: префикса mnu, указывающего, что это меню, затем для пунктов главного меню - имя пункта, для подменю - сокращенные имена родительских пунктов, а затем собственное имя меню.
Свойство Index определяет численный идентификатор пункта меню, если он является элементом массива элементов управления.
Свойство Shortcut назначает комбинацию клавиш для быстрого вызова команды без обращения к меню.
Свойство HelpContextId позволяет определить ссылку на тему в справочной системе, для выдачи контекстно-зависимой справки по приложению.
Checked определяет свойство команды меню, являющейся параметром. Свойство может принимать значения: True – рядом с пунктом появиться галочка, False – галочка не отображается.
Свойство Enabled определяет доступ к пункту меню. Значение False для свойства означает, что команду в данный момент времени выполнить нельзя (команда видна, но не доступна).
Свойство Visible определяет, будет ли виден на экране элемент меню.
Свойство WindowList определяет для интерфейса типа MDI будет ли автоматически формироваться динамический список всех активных дочерних окон (список выводиться в меню Window(Окно)).
Элементы конструирования структуры предназначены для формирования структуры меню и позволяют:
перемещать пункты меню (команды) по иерархии меню (кнопки , ) и по структуре (кнопки и );
добавлять и удалять пункты меню (команды).
Для создания процедуры выполнения команды меню следует во время проектирования выбрать соответствующий пункт меню в форме. При этом создается процедура обработки события Click для выбранного элемента меню. VISUAL BASIC позволяет создавать контекстное или всплывающее меню. Контекстное меню создается также как и обычное меню в окне редактора меню (рис. 7.22). Так как в исходном состоянии формы контекстное меню должно быть скрыто, свойству Visible элемента контекстного меню верхнего уровня нужно присвоить значение False. Для отображения контекстного меню на экране нужно вызвать метод PopUpMenu формы.
Отображение контекстного меню связано с щелчком правой кнопкой мыши на форме. С действием – щелчок кнопкой мыши – связано событие MouseUp (отпускание кнопки). На рис. 7.23 приведена процедура отображения контекстного меню. При возникновение этого события процедуре обработки событий передаются следующие параметры:
X, Y – определяют координаты указателя мыши в момент щелчка.
В форме может быть создано произвольное количество контекстных меню. Отображаться они будут после щелчка правой кнопки мыши в различных областях формы. Параметры x, y определяют координаты указателя. Пример выполнения команды из контекстного меню показан на рис. 7.24.
7.26. Основные элементы управления
Стандартные элементы управления для работы с данными размещены в блоке инструментов (панель ToolBar) и становятся доступными пользователю при работе в режиме конструктора форм
Первоначально на панели размещены так называемые внутренние (intrinsic) элементы управления. Это, однако, неполный список элементов, которые входят в поставку VISUAL BASIC. Для размещения в блоке инструментов других элементов предназначена команда Project\Components.
Кнопка
Кнопка (CommandButton) используется для инициирования пользователем необходимых действий, которые начинают выполняться после щелчка мышью по кнопке.
Событие Click возникает:
а) при непосредственном щелчке по кнопке мышью;
б) при перемещении фокуса на кнопку с помощью клавиши Tab с последующем нажатием клавиши Enter.
Свойства:
Caption – задает название кнопки (текст на кнопке). С помощью свойства можно назначить для кнопки клавиши быстрого доступа. Для этого следует перед буквой, соответствующей желаемой клавиши поместить символ &.
Например, если задать свойству значение Ф&ормат, то кнопке будут назначена команда Alt+о, на кнопке будет выведен текст Формат.
Default - определяет, что данная кнопка активна по умолчанию. Если в форме несколько кнопок, то на одну из них можно по умолчанию поместить фокус, задав свойству Default этой кнопки значение True. Такая кнопка называется стандартной (default button). Если нажать клавишу Enter, то автоматически генерируется событие Click стандартной кнопки, независимо от того какой элемент имеет фокус (обычно это свойство имеет кнопка Ok).
Cancel – позволяет назначить кнопку отмены операции (cancel button). Для такой кнопки событие Click возникает после нажатия клавиши Esc ( обычно это свойство имеет кнопка Cancel).
Style – определяет стиль оформления кнопка. Если свойство имеет значение Standard, то на кнопку выводиться текст свойства Caption. Если свойство имеет значение Graphical – на кнопке графическое изображения, задаваемое свойством Picture.
С помощью свойств Desabled Picture и Down Picture можно задать для кнопки два графических изображения: изображение неактивной кнопки и изображение, отображаемое при нажатии кнопки.
Надпись
Надпись(Label) предназначена для отображения текста в форме, который пользователь не может изменить с клавиатуры. Чаще всего используется для создания подписей к другим элементам управления.
Свойства:
Caption - содержит отображаемый текст. Максимальное количество символов в тексте 65528. Размеры надписи можно задавать:
мышью или командами Shift+{ | | ® | ¯};
свойствами Height и Width;
свойствами Autosize и WordWrap.
Autosize имеет два значения:
- значение False – размер надписи постоянный и не зависит от длины текста в свойстве Caption;
- значениеTrue – размер надписи автоматически подстраивается под значение свойства Caption.
При этом изменение размеров элемента зависит от значения свойства WordWrap. Если значение свойства False, то размеры надписи будут увеличиваться только в горизонтальном направлении, пока весь текст не будет виден на экране. Если свойство имеет значение True, то увеличение размеров будет выполняться по вертикали. При этом будет происходить автоматический перенос слов на новую строку.
Примечание: Первоначально значение присваивается свойству WordWrap, а затем значение True свойству AutoSize.
Используя следующие способы можно задать принудительный перенос текста в нужном месте:
поместить в текст константу vbCrLf;
1) поместить в текст символы с кодами 13 (перевод строки) и 10 (возврат каретки).
BorderStyle - способ отображения текста - с рамкой или без нее.
Font–задает тип, гарнитуру, размер и стиль шрифта отображаемого текста.
ForeColorи BackColor задают цвет текста и фона;
Appearance определяет внешний вид: объемный (1-3d) или плоский (0 – Flat).
Текстовое поле (TextBox)
Является основным элементом управления, предназначенным для ввода данных.
События:
Change - вызывается при изменении содержимого текстового поля. Происходит каждый раз при вводе, удалении или изменении символа. Событие возникает до потери.
Пример контроля вводимых данных (ввод в текстовое поле только числового значения):
Private Sub txtNomGr_Change()
If Not IsNumeric(txtNomGr) Then
MsgBox “Вводите только цифры”
EndIf
End Sub
Validate – используется для проверки введенного в текстовое поле значения. Событие Validate возникает только в том случае, если для текстового поля свойству Causes Validation задано значение True.
Пример контроля вводимых данных (на соответствие вводимого значения заданному диапазону значений):
Private Sub txtNomGr_Validate(Cancel_
As Boolean)
If Val(txtNomGr.Text)<100 Or _
Val(txtNomGr.Text)>9999 Then
MsgBox “Номера групп от 100 до 9999”
EndIf
End Sub
Примечание: При проверке работы процедуры примера для перемещения между элементами лучше использовать клавишную команду Tab.
LostFocus - используется для анализа введенного в поле текста. Событие возникает, когда текстовое поле становится неактивным (после передачи фокуса другому элементу). Однако, если это поле является единственным элементом в форме, то оно не может потерять фокус.
Первым возникает событие Validate, затем LostFocus.
GotFocus - используется для удаления или инициализации содержимого текстового поля. Вызывается, когда курсор устанавливается в текстовое поле.
Пример:
Private Sub txtNomGr_LostFocus()
Stud.NomGr=txtNomGr.Text
End Sub
Свойства текстового поля:
Text - содержит отображаемый в поле текст.
Enabled – определяет, будет ли элемент управления реагировать на событие или нет. Если свойству задано значение False, то элемент недоступен.
Visible – управляет видимостью элемента на экране. Если значение свойства False, то элемент “скрыт” от пользователя
Пример:
Private Sub Command1_Click()
Command1.Enabled = False
Command2.Visible = False
End Sub
ToolTipText – содержит текст всплывающей подсказки.
PasswordChar – задает символ, отображаемый в поле вместо вводимых символов.
MaxLength – определяет максимальное число символов, вводимых в текстовое поле.
С помощью свойства PasswordChar и MaxLength можно предназначить текстовое поле для ввода пароля.
Для управления текстом используются следующие свойства:
MultiLine - для ввода в текстовое поле нескольких строк.
ScrollBars - определяет, какую полосу прокрутки будет иметь текстовое поле (горизонтальную, вертикальную или обе).
SelStart - определяет начальную позицию выделенного текста в символах.
SelLength - содержит количество выделенных символов.
SelText - можно прочитать или изменить выделенный текст.
Пример выделения всего текста в текстовом поле и замена его новым:
Private Sub Text1_GotFocus()
Text1.SelStart =0
Text1.SelLength = Len(Text1.Text)
End Sub
Флажок(CheckBox)
Флажок(CheckBox)предназначен для выбора опции. Позволяет отобразить в форме логические данные. Флажок может иметь оно из трех различных состояний: быть отмеченным, не отмеченным, отображаться как отмеченным, но недоступным.
События:
Click - щелчок мыши.
Свойства:
Value – задает значение флажка:
0- отмечен;
1- не отмечен;
2- третье состояние.
Style– определяет внешний вид флажка:
0-Standard – обычный;
1-Graphical – графический. В этом случае элемент имеет вид кнопки (утопленной/приподнятой).