在 VB.NET 中点击不同的按钮打开不同的表单

Open different forms on different button click in VB.NET

我有一个菜鸟问题,有什么方法可以使用单个命令在不同的按钮单击事件上打开不同的表单。我在一个表单中有 24 个按钮,将使用这些按钮打开 24 个不同的表单。

所以不要重复 24 次:

 Private Sub BtnCh1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCh1.Click
    FormCh1.Show()
End Sub
Private Sub BtnCh2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCh2.Click
    FormCh2.Show()
End Sub
Private Sub BtnCh3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCh3.Click
    FormCh3.Show()
End Sub
Private Sub BtnCh4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCh4.Click
    FormCh4.Show()
End Sub

一个命令可以完成吗?

将所有处理程序附加到您的方法,然后根据 Select 案例分支行为:

Private Sub Button_Click_Handler(sender As Object, e As EventArgs) Handles Button66.Click, Button67.Click, Button68.Click

    Dim btn As Button = DirectCast(sender, Button)

    Select Case btn.Name
        Case Button66.Name
            Dim f1 As New Form1
            f1.Show()
        Case Button67.Name
            Dim f2 As New Form2
            f2.Show()
        Case Button68.Name
            Dim f3 As New Form3
            f3.Show()
    End Select

End Sub

在您表单的加载事件中,将表单添加到 List(Of Form)

Private list As List(Of Form)
Private Sub Me_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
    list = New List(Of Form)
    list.Add(New Form1())
    '
    '
    '
    list.Add(New Form24())
End Sub

使用表单索引设置按钮的 Tag 属性 并将它们全部设置为使用相同的点击事件:

Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
    list(CType(sender, Button).Tag).Show()
End Sub