在表单中处理用户控件控件的事件

Bri*_*rij 3 vb.net events controls winforms

我有一个按钮UserControl1.我使用UserControl1Form1.我想要处理Button的Click事件Form1.

我试图做同样的事情:

AddHandler userControl1.Button1.Click, AddressOf Button1_Click
Run Code Online (Sandbox Code Playgroud)

和:

Public Sub Button1_Click(ByVal sender As Object, ByVal args As EventArgs) Handles userControl1.Button1.Click

End Sub
Run Code Online (Sandbox Code Playgroud)

但得到错误.

Sys*_*gon 10

在以下位置创建您的活动UserControl:

Public Class UserControl1

    Public Event UC_Button1Click()

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        RaiseEvent UC_Button1Click()
    End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

然后使用新事件:

AddHandler userControl1.UC_Button1Click, AddressOf Button1_Click
Run Code Online (Sandbox Code Playgroud)

或者您可以简单地在UserControl外部定义它并从外部访问它(不推荐):

Public WithEvents Button1 As System.Windows.Forms.Button
Run Code Online (Sandbox Code Playgroud)

然后:

AddHandler uc.Button1.Click, AddressOf Button1_Click
Run Code Online (Sandbox Code Playgroud)