Свойства форм
Ограниченный объем книги не позволяет нам рассмотреть все свойства класса Form, но мы хотим выделить существенные различия между поведением форм в прежних версиях VB и VB .NET. Одно из самых принципиальных изменений связано с использованием шрифтов. Вместо старых шрифтовых свойств (например, FontBold) используется класс Font пространства имен System.Drawing, самый распространенный конструктор которого выглядит следующим образом:
Sub New(ByVal family As FontFamily.ByVal emSize As Single._
ByVal style As FontStyle)
Термин «семейство шрифтов» (font family) хорошо знаком пользователям Word. Семейством называется группа шрифтов (Times New Roman, Courier New, Arial и т. д.), объединенных сходным графическим стилем, но обладающих разным кеглем и атрибутами начертания (курсив, жирный шрифт и т. д.).
Например, поскольку оператор Or объединяет значения отдельных битов, следующая команда присваивает переменной MyFont объект полужирного курсивного шрифта Arial с кеглем 12 пунктов:
myFont =New System.Drawing.Font("Arial". 12._
FontStyle.Bold Or FontStyle.Italic)
Следующая процедура события Button 1_C1ick изменяет шрифт при нажатии кнопки:
Private Sub Buttonl_Click(ByVal sender As System.Object. _
ByVal e As System.EventArgs) Handles Buttonl.Click
Dim myFont As System.Drawing.Font
myFont = New System.Drawing.Font("Arial".12.
FontStyle.Bold Or FontStyle.Italic)
Me.Font = myFont End Sub
На рис. 8.9 показано, как выглядит новый шрифт на кнопке.
Рис. 8.9. Кнопка с текстом, оформленным полужирным курсивным шрифтом
При изменении свойства Font формы новый шрифт автоматически используется для вывода свойства Text всех элементов, расположенных на форме. Исключение составляют элементы, которым были назначены собственные шрифты.
В сочетании со свойствами Anchor и Dock часто используются свойства MinimumSize и MaximumSize, определяющие соответственно минимальные и максимальные размеры формы. Значения этих свойств представляют собой объекты Size.
Например, следующая команда запрещает уменьшать форму до размеров, меньших размеров кнопки:
Me.MimmumSize =New Size(Buttonl.Size)
Поскольку свойство MinimumSize управляет изменением свойства Size, в заданные размеры включается размер заголовка окна. Таким образом, после выполнения предыдущей команды в уменьшенном окне почти не останется места для кнопки. Лучше воспользоваться командой вида
Me.MinimumSize = New Size(Buttonl.Size.Width * 2, Button1.Size.Height * 2)
Новое свойство ClientSi ze возвращает информацию о клиентской области формы (области, не включающей заголовок и рамку). Свойство Bounds предназначено для чтения/записи структуры Rectangle, содержащей ширину и высоту формы и позицию ее левого верхнего угла.
Класс Rectangle пространства имен System.Drawing содержит немало полезных мето-дов; подробное описание этой вспомогательной структуры данных приведено в документации. Мы часто используем метод Inflate, предназначенный для увеличения прямоугольников с заданным приращением.
Многие свойства, методы и события форм отличаются от своих прототипов из VB6. Важнейшие изменения перечислены в табл. 8.1.
Таблица 8.1. Изменения в свойствах, методах и событиях форм
Старый элемент формы |
Новый элемент формы |
Activate/Deactivate (события) |
Переименованы в Activated/Deactivated |
Container (свойство) |
Переименовано в Parent |
DblClick (событие) |
Переименовано в DoubleClick |
hWnd (свойство) |
Переименовано в Handle |
MouseCursor (свойство) |
Переименовано в Cursor и возвращает экземпляр класса Cursor |
Parent (свойство) |
Заменено методом FindForm |
Picture (свойство) |
Заменено свойством Backgroundlmage |
SetFocus (метод) |
Переименован в Focus |
Startup (свойство) |
Заменено свойством StartPosition |
ToolTip (свойство) |
Заменено элементом ToolTip, который связывается с элементами через свойство ToolTip элемента |
Unload (команда) Unload (событие) |
Заменена методом Close Заменено событием hosing (также существует новое событие Closed, инициируемое после закрытия формы) |
ZOrder (метод) |
Заменен методами BriflgToFront и SendToBack |