Объект Form для пользователей Visual Basic 6.0
Обновлен: Ноябрь 2007
Объект Form в Visual Basic 6.0 заменен классом Form в Visual Basic 2008. Имена некоторых свойств, методов, событий и констант различаются, а в некоторых случаях имеется различие в их поведении.
Концептуальные различия
Активация и деактивация событий
В Visual Basic 6.0 события Activate и Deactivate возникают только при переключении между формами.
В Visual Basic 2008 события Activated и Deactivate также возникают при переключении на другие приложения.
Событие QueryUnload
В Visual Basic 6.0 событие QueryUnload принимает два аргумента: Cancel и UnloadMode. Путем запроса аргумента UnloadMode можно определить причину выгрузки формы и при необходимости отменить ее.
В Visual Basic 2008 событие QueryUnload заменено событием FormClosing, а событие UnloadMode — событием CloseReason.
Свойство Picture
В Visual Basic 6.0 изображение, присвоенное свойству Picture, отображается в верхнем левом углу формы, если растровое изображение меньше размеров формы.
В Visual Basic 2008 свойство Picture заменено свойством BackgroundImage. Если изображение, присвоенное свойству BackgroundImage, меньше формы по размеру, по умолчанию используется мозаичное заполнение.
Свойство Moveable
В Visual Basic 6.0 для свойства Moveable формы можно установить значение False, чтобы предотвратить перемещение формы пользователем во время выполнения программы. У форм Windows Forms в Visual Basic 2008 нет эквивалентного свойства.
Хотя такой вариант пользовательского интерфейса, как правило, считается неудачным, можно добиться подобного поведения и в Visual Basic 2008 установкой свойства FormBorderStyle равным None и свойства ControlBox равным False.
Метод ValidateControls
В Visual Basic 6.0 метод ValidateControls используется для принудительного вызова события Validate для элемента управления, получающего фокус при закрытии формы; в случае сбоя в событии Validate возникает ошибка.
В Visual Basic 2008 метод ValidateControls заменен методом Validate, который возвращает значение True или False.
События мыши в формах MDI
В Visual Basic 6.0 формы MDI поддерживают события мыши. В Visual Basic 2008 события Click, MouseDown, MouseMove и MouseUp больше не поддерживаются для форм MDI, так как форма MDI не имеет клиентской области, воспринимающей события мыши.
Изменения кода для объекта Form
Следующие примеры иллюстрируют различия в методах кодирования между Visual Basic 6.0 и Visual Basic 2008.
Изменения кода для определения причины закрытия формы
В следующем примере кода показан способ определения причины закрытия окна и выполнения соответствующих действий. В примере для Visual Basic 6.0 используется аргумент UnloadMode события QueryUnload. В примере для Visual Basic 2008 аргумент заменен параметром CloseReason в обработчике событий FormClosing.
' Visual Basic 6.0
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Cancel = True
End If
End Sub
' Visual Basic
Private Sub Form1_FormClosing(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles _
MyBase.FormClosing
If e.CloseReason.UserClosing Then
e.Cancel = True
End If
End Sub
Изменения кода для проверки элемента управления при закрытии формы
В следующем примере показан способ принудительной проверки элемента управления, имеющего фокус при закрытии формы. В этом примере предполагается, что свойство CausesValidation элемента управления TextBox имеет значение по умолчанию True.
' Visual Basic 6.0
Private Sub Text1_Validate(Cancel As Boolean)
If Text1.Text = "" Then
MsgBox ("Please enter a name")
Cancel = True
End If
Private Sub Form_Unload(Cancel As Integer)
OnError GoTo ERR_HANDLER
Me.ValidateControls
ERR_HANDLER:
' If validation failed cancel the Unload event.
If Err.Number = 380 Then
Cancel = True
End If
End Sub
' Visual Basic
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As _
System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If TextBox1.Text = "" Then
MsgBox("Please enter a name")
e.Cancel = True
End If
End Sub
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e _
As System.Windows.Forms.FormClosingEventArgs) Handles _
MyBase.FormClosing
' If validation failed cancel the Closing event.
If Me.Validate = False Then
e.Cancel = True
End If
End Sub
Эквиваленты свойств, методов и событий объекта Form
В следующей таблице приведен список свойств, методов и событий Visual Basic 6.0 вместе с их свойствами для Visual Basic 2008. Свойства, методы и события, имена и поведение которых остались без изменения, не указываются. Константы, если используются, расположены под свойством или методом с отступом. Если не указано иное, все перечисления Visual Basic 2008 сопоставлены пространству имен System.Windows.Forms.
Где это необходимо, даны ссылки на разделы, описывающие различия в поведении. Если нет прямого эквивалента в Visual Basic 2008, приводятся ссылки на разделы, содержащие альтернативные решения.
Свойства объекта Form
Visual Basic 6.0 |
Эквивалент Visual Basic 2008 |
---|---|
Appearance |
Новая реализация. Дополнительные сведения см. в разделе Свойства Appearance и BorderStyle (для пользователей Visual Basic 6.0). |
AutoRedraw |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
BackColor |
![]()
Обработка цветов отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).
|
BorderStyle |
|
Caption |
|
ClipControls |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Controls |
![]()
В коллекции Controls в Visual Basic 2008 имеются отличия. Дополнительные сведения см. в разделе Коллекция элементов управления для пользователей Visual Basic 6.0.
|
Count |
![]()
В коллекции Controls в Visual Basic 2008 имеются отличия. Дополнительные сведения см. в разделе Элементы управления Windows Forms (для пользователей Visual Basic 6.0).
|
CurrentX CurrentY |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
DrawMode DrawStyle DrawWidth |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
FillColor FillStyle |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
![]()
Обработка шрифтов отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Объект Font (для пользователей Visual Basic 6.0).
|
ForeColor |
![]()
Обработка цветов отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).
|
HasDC |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
HDC |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Height |
![]()
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
HelpContextID |
Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0). |
HWnd |
|
Image |
Новая реализация. Свойство Image в Visual Basic 6.0 возвращало дескриптор растрового изображения; у изображений в Visual Basic 2008 дескрипторов нет. |
Left |
![]()
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
LinkMode LinkTopic |
Эквивалента нет. Дополнительные сведения см. в разделе Динамический обмен данными для пользователей Visual Basic 6.0. |
MaxButton |
|
MDIChild |
![]()
Поведение MDI в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе MDI для пользователей Visual Basic 6.0.
|
MinButton |
|
MouseIcon |
Новая реализация. Дополнительные сведения см. в разделе Невозможно задать настраиваемый указатель мыши MousePointer. |
MousePointer |
Список констант см. в разделе Свойство MousePointer (для пользователей Visual Basic 6.0). |
Moveable |
Новая реализация. Дополнительные сведения см. в разделе Свойство Moveable для пользователей Visual Basic 6.0. |
Name |
|
NegotiateMenus |
Новая реализация. Дополнительные сведения см. в разделе Объект Menu для пользователей Visual Basic 6.0. |
OLEDropMode |
Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0. |
Palette PaletteMode |
Новая реализация. Дополнительные сведения см. в разделе Палитры (для пользователей Visual Basic 6.0). |
Picture |
![]()
В Visual Basic 6.0 изображение Picture отображалось в левом верхнем углу формы; в Visual Basic 2008 изображение BackgroundImage располагается в виде мозаики.
|
RightToLeft: True False |
Значение перечисления Yes |
ScaleHeight ScaleLeft ScaleMode ScaleTop ScaleWidth |
Новая реализация. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0). |
StartUpPosition: 0 – Manual 1 – CenterOwner 2 – CenterScreen 3 – Windows Default |
Значение перечисления Manual Значение перечисления CenterParent Значение перечисления CenterScreen Значение перечисления WindowsDefaultLocation |
Top |
![]()
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
WhatsThisButton |
![]()
В поведении справки в Visual Basic 2008 имеются отличия. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).
|
WhatsThisHelp |
Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0). |
Width |
![]()
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
Методы Form
Visual Basic 6.0 |
Эквивалент Visual Basic 2008 |
---|---|
Circle |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Cls |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Line |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Move |
![]()
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).
|
OLEDrag |
Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0. |
PaintPicture |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Point |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
PopupMenu |
Новая реализация. Дополнительные сведения см. в разделе Объект Menu для пользователей Visual Basic 6.0. |
PrintForm |
Новая реализация. Дополнительные сведения см. в разделе Касающиеся печати изменения (для пользователей Visual Basic 6.0). |
Pset |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
Scale ScaleX ScaleY |
Новая реализация. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0). |
SetFocus |
|
Show |
Show или ShowDialog |
TextHeight |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
TextWidth |
Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0. |
ValidateControls |
![]()
Метод Validate возвращает True или False. Вызов ValidateControls приводил к ошибке, если проверка заканчивалась неудачей.
|
WhatsThisMode |
Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0). |
ZOrder: 0 – vbBringToFront 1 - vbSendToBack |
Функция BringToFront или SendToBack |
События Form
Visual Basic 6.0 |
Эквивалент Visual Basic 2008 |
---|---|
Activate |
![]()
В Visual Basic 6.0 событие Activate возникает только при переключении между формами в приложении; в Visual Basic 2008 событие Activated возникает также при переключении из других приложений.
|
Click |
![]()
Событие Click не поддерживается для форм MDI.
|
DblClick |
|
Deactivate |
![]()
В Visual Basic 6.0 событие Deactivate возникало только при переключении между формами в приложении; в Visual Basic 2008 оно возникает также при переключении на другие приложения.
|
DragDrop DragOver |
Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0. |
GotFocus |
|
Initialize |
Метод New; ![]()
Поведение метода New отличается от поведения события Initialize. Дополнительные сведения см. в разделе Выполняемые с помощью форм задачи (для пользователей Visual Basic 6.0).
|
LinkClose LinkError LinkExecute LinkOpen |
Эквивалента нет. Дополнительные сведения см. в разделе Динамический обмен данными для пользователей Visual Basic 6.0. |
MouseDown |
![]()
Событие MouseDown не поддерживается для форм MDI.
|
MouseMove |
![]()
Событие MouseMove не поддерживается для форм MDI.
|
MouseUp |
![]()
Событие MouseUp не поддерживается для форм MDI.
|
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0. |
QueryUnload |
![]()
В Visual Basic 6.0 событие QueryUnload принимает два аргумента: Cancel и UnloadMode. В Visual Basic 2008 событие Cancel заменено Cancel, а событие UnloadMode —CloseReason.
|
Terminate |
Метод Dispose ![]()
Поведение метода Dispose отличается от поведения события Terminate. Дополнительные сведения см. в разделе События форм (для пользователей Visual Basic 6.0).
|
Unload |
![]()
Поведение события FormClosing отличается от поведения события Unload. Дополнительные сведения см. в разделе События форм (для пользователей Visual Basic 6.0).
|
См. также
Основные понятия
Выполняемые с помощью форм задачи (для пользователей Visual Basic 6.0)