无法引发另一种形式的按钮单击事件

Cannot raise button click event of another form

我有两个表单 form1 和 form2。 form1 有 button1,form2 有 button2。 我想要实现的是当我点击 button1 时应该显示 form2 并且必须点击 button2。我已经在 button1 click 事件中尝试了下面提到的代码。

form2.ShowDialog
form2.button2.PerformClick

form2.ShowDialog
form2.button2_Click(Nothing, Nothing)

Dim frm as New form2
frm.ShowDialog
frm.button2.PerformClick

Dim frm as New form2
frm.ShowDialog
frm.button2_Click(Nothing, Nothing)

但是上述方法中的 none 是有效的。仅显示 form2 但未单击 button2。

我再次尝试创建 'button2_Click' 事件 public,但仍然无法正常工作。

您当前方法的问题在于,当 ShowDialog() 为 运行 时,代码以当前形式停止。

一个解决方案是创建 Form2 的实例并连接 Shown() 事件,该事件在显示表单后 运行。

从那里,您可以使用您创建的表单实例单击按钮:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim f2 As New Form2
    AddHandler f2.Shown, Sub()
                             f2.Button2.PerformClick()
                         End Sub
    f2.ShowDialog()
End Sub

正如 Idle_Mind 所说,.ShowDialog() 将停止以下代码的工作,因此您有两种解决方法。

  • 首先调用事件,然后将其显示为对话框

    Dim frm as New form2
    frm.button2.PerformClick()
    frm.ShowDialog()
    
  • 保持原样,但不要将其显示为对话框,而只是显示它。

    Dim frm as New form2
    frm.Show()
    frm.Visible = True
    frm.button2.PerformClick()