Простейшее Windows-приложение
Ограниченный объем книги не позволяет нам рассмотреть все свойства класса 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 |
Назад
|
Содержание
|
Вперед
|