2011-11-25 8 views
9

Heres il mio sub:Come determinare quale tipo di oggetto è il mittente di 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 

Ora desidero dare onThisTable un valore diverso a seconda quello che l'utente passa sopra (pannello o un pbox o di un tasto), ma non posso trovare qual è il modo corretto per confrontare quale tipo è ...

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 

risposta

18

è possibile utilizzare la parola chiave typeOf come descibed qui (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 per la risposta troppo veloce –

Problemi correlati