Иллюстрированный самоучитель по VB.NET

       

Свойства форм


Ограниченный объем книги не позволяет нам рассмотреть все свойства класса 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)

При изменении свойства MaximumSize часто используется класс System.Windows. Forms.Screen, предназначенный для работы с экранами (с поддержкой нескольких мониторов). Этот класс также используется при изменении свойств DesktopBounds и DesktopLocation.

Новое свойство 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

Содержание раздела