2011-11-25 15 views
9

Heres mi substitución:¿Cómo determinar qué tipo de objeto es el remitente de un evento?

Dim onThisTable as String ="Name" 

Private Sub skill_mouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.MouseHover, button2.MouseHover, panel1.MouseHover, panel2.MouseHover, pbox1.MouseHover 
    descriptionLabel.Text = dbClass.getDescription(sender.Text, onThisTable) 
End Sub 

Ahora deseo dar onThisTable un valor diferente dependiendo de lo que pase el usuario a través de (panel o una pbox o un botón) pero no puedo encontrar cuál es la forma correcta de comparar qué tipo es ...

Private Sub skill_mouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.MouseHover, button2.MouseHover, panel1.MouseHover, panel2.MouseHover, pbox1.MouseHover 
    if sender is (a button) 
    onThisTable = "Admin" 
    else if sender is (a panel) 
    onThisTable = "dbObject" 
    else 
    onThisTable ="Name" 
    end if 

    descriptionLabel.Text = dbClass.getDescription(sender.Text, onThisTable) 
End Sub 

Respuesta

18

puede utilizar la palabra clave typeOf según lo expuesto aquí (link)

If TypeOf sender Is Button Then 
     onThisTable = "Admin" 
    ElseIf TypeOf sender Is System.Windows.Forms.Panel Then 
     onThisTable = "dbObject" 
    Else 
     onThisTable = "Name" 
    End If 
+0

aah, typeOf grande, tx por la respuesta rápida demasiado –

Cuestiones relacionadas