Поделиться через


Объект 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

BackColor

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка цветов отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).

BorderStyle

FormBorderStyle

Caption

Text

ClipControls

Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0.

Controls

Controls

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В коллекции Controls в Visual Basic 2008 имеются отличия. Дополнительные сведения см. в разделе Коллекция элементов управления для пользователей Visual Basic 6.0.

Count

Count

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В коллекции 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

Font

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка шрифтов отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Объект Font (для пользователей Visual Basic 6.0).

ForeColor

ForeColor

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка цветов отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Действие цветов (для пользователей Visual Basic 6.0).

HasDC

Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0.

HDC

Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0.

Height

Height, Size

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

HelpContextID

Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

HWnd

Handle

Image

Новая реализация. Свойство Image в Visual Basic 6.0 возвращало дескриптор растрового изображения; у изображений в Visual Basic 2008 дескрипторов нет.

Left

Left

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

LinkMode

LinkTopic

Эквивалента нет. Дополнительные сведения см. в разделе Динамический обмен данными для пользователей Visual Basic 6.0.

MaxButton

MaximizeBox

MDIChild

MdiParent

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Поведение MDI в Visual Basic 2008 отличается. Дополнительные сведения см. в разделе MDI для пользователей Visual Basic 6.0.

MinButton

MinimizeBox

MouseIcon

Новая реализация. Дополнительные сведения см. в разделе Невозможно задать настраиваемый указатель мыши MousePointer.

MousePointer

Cursor

Список констант см. в разделе Свойство MousePointer (для пользователей Visual Basic 6.0).

Moveable

Новая реализация. Дополнительные сведения см. в разделе Свойство Moveable для пользователей Visual Basic 6.0.

Name

Name

NegotiateMenus

Новая реализация. Дополнительные сведения см. в разделе Объект Menu для пользователей Visual Basic 6.0.

OLEDropMode

Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0.

Palette

PaletteMode

Новая реализация. Дополнительные сведения см. в разделе Палитры (для пользователей Visual Basic 6.0).

Picture

BackgroundImage

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В Visual Basic 6.0 изображение Picture отображалось в левом верхнем углу формы; в Visual Basic 2008 изображение BackgroundImage располагается в виде мозаики.

RightToLeft:

True

False

RightToLeft

Значение перечисления Yes

ScaleHeight

ScaleLeft

ScaleMode

ScaleTop

ScaleWidth

Новая реализация. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

StartUpPosition:

0 – Manual

1 – CenterOwner

2 – CenterScreen

3 – Windows Default

StartPosition

 Значение перечисления Manual

 Значение перечисления CenterParent

 Значение перечисления CenterScreen

 Значение перечисления WindowsDefaultLocation

Top

Top

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат отличается в Visual Basic 2008. Дополнительные сведения см. в разделе Система координат (для пользователей Visual Basic 6.0).

WhatsThisButton

HelpButton

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В поведении справки в Visual Basic 2008 имеются отличия. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

WhatsThisHelp

Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

Width

Width, Size

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат отличается в 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

SetBounds

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Обработка координат отличается в 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

Activate

Show

Show или ShowDialog

TextHeight

Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0.

TextWidth

Новая реализация. Дополнительные сведения см. в разделе Графика для пользователей Visual Basic 6.0.

ValidateControls

Validate

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Метод Validate возвращает True или False. Вызов ValidateControls приводил к ошибке, если проверка заканчивалась неудачей.

WhatsThisMode

Новая реализация. Дополнительные сведения см. в разделе Поддержка справки (для пользователей Visual Basic 6.0).

ZOrder:

 0 – vbBringToFront

 1 - vbSendToBack

Функция BringToFront или SendToBack

 BringToFront

 SendToBack

События Form

Visual Basic 6.0

Эквивалент Visual Basic 2008

Activate

Activated

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В Visual Basic 6.0 событие Activate возникает только при переключении между формами в приложении; в Visual Basic 2008 событие Activated возникает также при переключении из других приложений.

Click

Click

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Событие Click не поддерживается для форм MDI.

DblClick

DoubleClick

Deactivate

Deactivate

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В Visual Basic 6.0 событие Deactivate возникало только при переключении между формами в приложении; в Visual Basic 2008 оно возникает также при переключении на другие приложения.

DragDrop

DragOver

Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0.

GotFocus

Enter

Initialize

Метод New;

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Поведение метода New отличается от поведения события Initialize. Дополнительные сведения см. в разделе Выполняемые с помощью форм задачи (для пользователей Visual Basic 6.0).

LinkClose

LinkError

LinkExecute

LinkOpen

Эквивалента нет. Дополнительные сведения см. в разделе Динамический обмен данными для пользователей Visual Basic 6.0.

MouseDown

MouseDown

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Событие MouseDown не поддерживается для форм MDI.

MouseMove

MouseMove

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Событие MouseMove не поддерживается для форм MDI.

MouseUp

MouseUp

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Событие MouseUp не поддерживается для форм MDI.

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

Новая реализация. Дополнительные сведения см. в разделе Действие перетаскивания для пользователей Visual Basic 6.0.

QueryUnload

FormClosing

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
В Visual Basic 6.0 событие QueryUnload принимает два аргумента: Cancel и UnloadMode. В Visual Basic 2008 событие Cancel заменено Cancel, а событие UnloadMode —CloseReason.

Terminate

Метод Dispose

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Поведение метода Dispose отличается от поведения события Terminate. Дополнительные сведения см. в разделе События форм (для пользователей Visual Basic 6.0).

Unload

FormClosing

t98sy0cc.alert_note(ru-ru,VS.90).gifПримечание.
Поведение события FormClosing отличается от поведения события Unload. Дополнительные сведения см. в разделе События форм (для пользователей Visual Basic 6.0).

См. также

Основные понятия

Выполняемые с помощью форм задачи (для пользователей Visual Basic 6.0)

Другие ресурсы

Формы Windows Forms