在包含动态生成按钮的自定义控件上处理单击事件vb.net

在包含动态生成按钮的自定义控件上处理单击事件vb.net,vb.net,button,click,Vb.net,Button,Click,我的问题是: 我有一个自定义控件,它是一个动态生成按钮的面板,将来它将做足够多的事情成为一个控件,而不仅仅是一个面板 我想做的是以包含控件的形式创建一个事件,该控件允许我处理对该按钮的单击 我该怎么做 p.D.1:更具体地说,我想知道点击了哪个按钮 p.D.2:事实上,如果我能够处理面板中的标签更改事件,那么处理按钮单击事件的代码应该足够了 Friend Sub Button1_click(sender As Object, e As EventArgs) 'your code her

我的问题是:

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

我想做的是以包含控件的形式创建一个事件,该控件允许我处理对该按钮的单击

我该怎么做

p.D.1:更具体地说,我想知道点击了哪个按钮


p.D.2:事实上,如果我能够处理面板中的标签更改事件,那么处理按钮单击事件的代码应该足够了

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

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

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

创建一个子代码

   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

您可以编辑您的帖子来进一步描述您的问题,而不是在您自己的问题上发表评论。即使Addressed函数位于另一个类中,它是否有效?或者我可以在第二个类中使用pannel_name.button来处理该事件吗?是的,如果寻址函数在另一个类中,它应该可以工作。只需确保声明了次公共而不是私有,然后使用AddHandler yourButton。单击,AddressOf yourClass.Button按下