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


События форм (для пользователей Visual Basic 6.0)

Обновлен: Ноябрь 2007

Между версиями Visual Basic 6.0 и Visual Basic 2008 существуют некоторые различия в действии форм и событий.

Концептуальные различия

Событие Initialize

В версии Visual Basic 6.0 событие Initialize используется для выполнения кода до загрузки формы.

В версии Visual Basic 2008 код инициализации должен быть добавлен в конструктор формы (Sub New()) после вызова метода InitializeComponent(), как показано в следующем примере:

' Visual Basic 6.0 
Private Sub Form_Initialize()
    MsgBox("The form is loading")
End Sub

 

' Visual Basic .NET 
Public Sub New()
    ' This call is required by the Windows Form Designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
    MsgBox("The form is loading")
End Sub
h0eebx8w.alert_note(ru-ru,VS.90).gifПримечание.

Событие Initialize обычно используется для отображения формы заставки, содержащей информацию, представляемую во время загрузки. Приложения Visual Basic 2008 имеют свойство SplashScreen, которое может использоваться для автоматического вывода на экран формы во время запуска приложения. Дополнительные сведения см. в разделе Практическое руководство. Назначение экрана-заставки для приложения (Visual Basic).

Событие Terminate

В Visual Basic 6.0 событие Terminate используется для выполнения кода после выгрузки формы.

В Visual Basic 2008 событие Terminate не поддерживается. Код завершения должен выполняться внутри метода Dispose до вызова метода MyBase.Dispose().

h0eebx8w.alert_note(ru-ru,VS.90).gifПримечание.

Метод Dispose вызывается автоматически для основной формы приложения; для любой другой формы метод должен вызываться явно.

Следующий пример иллюстрирует различия.

' Visual Basic 6.0 
Private Sub Form_Terminate()
    MsgBox "The form was terminated"
End Sub

 

' Visual Basic .NET 
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing AndAlso components IsNot Nothing Then
        MsgBox("The form was terminated")
        components.Dispose()
    End If
    MyBase.Dispose(disposing)
End Sub

Событие Unload

В Visual Basic 6.0 у события Unload есть аргумент Cancel; в Visual Basic 2008 оно заменено событием Closed, у которого нет аргумента Cancel. При необходимости отмены во время выгрузки вместо него используется событие Closing.

События мыши в формах MDI

В Visual Basic 6.0 формы MDI поддерживают события мыши. В Visual Basic 2008 из-за отсутствия у формы MDI клиентской области для получения событий мыши события Click, MouseDown, MouseMove и MouseUp для форм MDI не поддерживаются.

См. также

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

Объект Form для пользователей Visual Basic 6.0

Ссылки

Form

Form.Closing