如何确定事件发件人的对象类型?

Thi*_*ier 10 vb.net

继承人我的潜意识:

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
Run Code Online (Sandbox Code Playgroud)

现在我希望根据用户传递的内容(面板或pbox或按钮)给onThisTable一个不同的值,但我无法找到比较它是什么类型的正确方法...

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
Run Code Online (Sandbox Code Playgroud)

Phi*_*ray 21

你可以在这里使用TypeOf关键字(链接)

    If TypeOf sender Is Button Then
        onThisTable = "Admin"
    ElseIf TypeOf sender Is System.Windows.Forms.Panel Then
        onThisTable = "dbObject"
    Else
        onThisTable = "Name"
    End If
Run Code Online (Sandbox Code Playgroud)