Vb.net 如何将按钮1从UserControl1导入Form1

Vb.net 如何将按钮1从UserControl1导入Form1,vb.net,Vb.net,我试过了,但没用 我还尝试了这个按钮1。单击开始页面(UserControl1)输入到表单1 我的代码: Private Sub Button1_Click(sender As Object, e As PaintEventArgs) Handles Startpage.Button1.Click End Sub 我认为这是最不可取的选择: Private WithEvents StartpageButton1 As Button Private Sub Form1_Load(sender

我试过了,但没用

我还尝试了这个
按钮1。单击
开始页面(UserControl1)
输入到
表单1

我的代码:

Private Sub Button1_Click(sender As Object, e As PaintEventArgs) Handles Startpage.Button1.Click

End Sub

我认为这是最不可取的选择:

Private WithEvents StartpageButton1 As Button

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    StartpageButton1 = Startpage.Button1
End Sub

Private Sub StartpageButton1_Click(sender As Object, e As EventArgs) Handles StartpageButton1.Click
    '...
End Sub
我认为这是一个更好的选择:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    AddHandler Startpage.Button1, AddressOf StartpageButton1
End Sub

Private Sub StartpageButton1_Click(sender As Object, e As EventArgs)
    '...
End Sub

Private Sub Form1_FormClosing(sender As Object, e As CancelEventArgs) Handles MyBase.FormClosing
    RemoveHandler Startpage.Button1, AddressOf StartpageButton1
End Sub
我认为这是最好的选择:

Public Event Button1Click As EventHandler

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    RaiseEvent Button1Click(Me, EventArgs.Empty)
End Sub
该部分将进入用户控件,然后以以下形式进入:

Private Sub Startpage_Button1Click(sender As Object, e As EventArgs) Handles Startpage.Button1Click
    '...
End Sub

没有“进口”。在
Handles
子句中唯一可以包含的是声明为
with events
的字段的事件。如果没有这样的字段,则必须使用
AddHandler
注册事件处理程序。请注意,如果愿意,您可以声明自己的字段并将
按钮指定给它,但这样做相当棘手。也就是说,正确的方法是用户控件处理自己的
按钮的
事件,然后引发表单可以处理的自己的事件。