Partilhar via


Eventos e Manipulação de Eventos para Usuários do Visual Basic 6.0

Se você estiver familiarizado com s evento e evento manipulação no Visual Basic 6.0, o evento modelo em Visual Basic 2008 pode parecer a primeira confuso, mas no fim das contas é mais simples e muito mais poderoso.

Diferenças Conceituais

No Visual Basic 6.0, eventos são ligados a objetos específicos e tem seu próprio código de manipulação de eventos.Por exemplo, em um formulário com um botão e um menu, cada uma tem seu próprio Click evento; você tem que escrever código no manipulador de eventos para cada, mesmo se eles juntos executam exatamente a mesma função.

' Visual Basic 6.0 
Private Sub HelpButton_Click()
    HelpButton.Caption = "Help me!"
End Sub
Private Sub HelpMenu_Click()
    HelpMenu.Caption = "Help me!"
End Sub

In Visual Basic 2008, eventos são ligados para manipulador de eventos s por meio de representantes, permitindo a criar de um único manipulador de eventos para vários objetos.

Private Sub HelpButton_Click(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles HelpButton.Click, HelpMenu.Click
    sender.Text = "Help me!"
End Sub

No exemplo acima, observe que a declaração do evento possui um Handles cláusula que define quais eventos serão manipulados — nesse caso, o Click eventos para ambos os HelpButton e HelpMenu objetos. Os objetos e eventos não são necessário ter o mesmo tipo; por exemplo, você pode ter um manipulador de eventos único que manipula o Click evento de um botão a DoubleClick evento de uma caixa de texto e o Tick evento de um timer.

Observe também que a declaração de evento contém dois parâmetros: ByVal sender As Object e ByVal e As System.EventArgs.O primeiro parâmetro, sender, fornece uma referência ao objeto que gera o evento.O segundo parâmetro, e, passa um objeto específico para o evento que está sendo manipulado. Ao fazer referência às propriedades do objeto (e algumas vezes, seus métodos), você pode obter informação como a posição do mouse para eventos do mouse, ou dados sendo transferidos em eventos de arrastar e soltar.

No exemplo a seguir, a MouseDown manipulador de evento usa o sender parâmetro para determinar o tipo de objeto que gerou o evento, e se o objeto for um PictureBox, o e parâmetro é usado para mover um rótulo para o local onde o clicar ocorreu. Para duplicar este exemplo, adicione dois PictureBox controles e uma Label controle a um formulário.

Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown, _
PictureBox1.MouseDown, PictureBox2.MouseDown

    If TypeOf sender Is PictureBox Then
        Label1.Location = sender.Location + e.Location
    Else
        MsgBox("Please click a picture")
    End If
End Sub

Normalmente, cada evento produz um manipulador de eventos com um tipo de objeto de evento diferente para o segundo parâmetro.Alguns manipuladores de eventos, tais sistema autônomo aqueles para o MouseDown e MouseUp eventos, têm o mesmo (tipo de objetoMouseEventArgs) para o segundo parâmetro. Para esses tipos de eventos, você pode usar o mesmo manipulador de eventos para manipular ambos os eventos.

Para eventos que passam diferentes tipos de objetos de eventos, você deve criar manipuladores de eventos separados.Por exemplo, a TextChanged evento de um TextBox controle passa a genérica EventArgs objeto de evento e o MouseDown evento passa mais especializado MouseEventArgs objeto de evento. The MouseEventArgs objeto contém propriedades que são específicas para eventos de mouse tal sistema autônomo Button, para determinar qual mouse botão do mouse foi pressionado; essas propriedades não se aplica a um TextBox controlar e poderiam causar um erro se você tentasse fazer referência a eles.

Além disso, para diferenças conceituais na manipulação de eventos, os nomes e comportamentos de alguns eventos para vários objetos são diferentes em Visual Basic 2008. Para obter mais informações, consulte Controles Windows Forms para Usuários do Visual Basic 6.0.

Consulte também

Conceitos

Visão geral dos Manipuladores de Eventos (Formulários do Windows)

Outros recursos

Criando Manipuladores de Eventos nos Formulários do Windows