【问题标题】:Handle click event on a custom control that contains dynamically generated buttons vb.net处理包含动态生成的按钮的自定义控件上的单击事件 vb.net
【发布时间】:2018-05-08 10:21:37
【问题描述】:

这是我的问题:

我有一个自定义控件,它是一个动态生成按钮的面板(将来它会做足够多的事情来成为一个控件而不仅仅是一个面板)

我想要做的是表单中的一个事件,其中包含允许我处理对这些按钮的点击的控件。

我该怎么做?

P.D. 1:更具体地说,我希望能够知道单击了哪个按钮

P.D. 2:事实上,如果我能够在面板中处理标签更改事件就足够了

【问题讨论】:

  • 您可以编辑帖子以进一步描述您的问题/问题,而不是将 cmets 发布到您自己的问题中。

标签: vb.net button click


【解决方案1】:

处理按钮点击事件的代码如下所示:

  Friend Sub Button1_click(sender As Object, e As EventArgs)
   'your code here
End Sub

【讨论】:

    【解决方案2】:

    您可能正在寻找自定义事件

    Public Event ButtonPressed As EventHandler(Of ButtonPressedEventArgs)
    
    Public Class ButtonPressedEventArgs 
        Inherits EventArgs
        Public Property MyButtonNumber As Integer
    End Class
    

    在一个按钮中点击你会引发事件

    Private Sub MyButton1_Click(sender As System.Object,e As System.EventArgs) Handles MyButton1.Click
      RaiseEvent ButtonPressed(Me, New ButtonPressedEventArgs() with {.MyButtonNumber = 1}
    End Sub
    

    并在适当的地方处理事件:

    Private Sub MyControl_ButtonPressed(sender As System.Object,e As ButtonPressedEventArgs) Handles MyControl.ButtonPressed
        Select Case e.MyButtonNumber 
            Case 1
             'Do what required
        End Select 
    End Sub
    

    【讨论】:

      【解决方案3】:

      在你的代码所在的地方创建一个子

         Private Sub buttonPressed(sender As Object, e As System.EventArgs)
      
              Dim b As Button = CType(sender, Button)
              MsgBox("Button pressed: " & b.Name)
      
          End Sub
      

      动态创建按钮时,添加以下代码行:

        AddHandler yourButton.Click, AddressOf buttonPressed
      

      【讨论】:

      • 即使被寻址的函数在另一个类中也能工作吗?或者我可以在第二个类中使用 pannel_name.button 来处理那个事件?
      • 是的,如果寻址的函数在另一个类中,它应该可以工作。只要确保您声明子公共而不是私有,然后使用AddHandler yourButton.Click, AddressOf yourClass.buttonPressed
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多