【问题标题】:Get the name of the button that triggered the event获取触发事件的按钮名称
【发布时间】:2015-05-05 17:33:50
【问题描述】:

我有一个事件处理程序来处理多个按钮的点击事件:

Private Sub primeHandler(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _2s.Click, _3s.Click, _4s.Click, _5s.Click, _6s.Click

End Sub

_2s、_3s 等都是按钮。 现在我需要一种方法来确定是哪个按钮触发了该事件,并获取按钮的名称作为字符串。有什么办法吗?谢谢

【问题讨论】:

  • sender 是触发事件的控件
  • 你用它做什么?根据我的经验,这几乎总是表明其他地方存在设计缺陷。

标签: vb.net winforms events


【解决方案1】:

您可以将sender 转换为Button 并访问Name 属性。

Private Sub primeHandler(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _2s.Click, _3s.Click, _4s.Click, _5s.Click, _6s.Click
    Dim myButton As Button = CType(sender, Button)
    Dim myName As String = myButton.Name
End Sub

【讨论】:

    【解决方案2】:

    使用sender - 这是它的设计目的。

    MessageBox.Show((sender as Button).Name);
    

    如果您要多次使用它,请将其分配给一个变量以使其更容易。

    var button = (sender as Button);
    MessageBox.Show(button.Name);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多