无法引发其他表单的按钮单击事件

时间:2020-09-25 09:59:35

标签: vb.net button instance showdialog

我有两种形式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)

但上述方法均无效。仅显示form2,但未单击button2。

我已经通过公开公开'button2_Click'事件来再次尝试,但仍然无法正常工作。

2 个答案:

答案 0 :(得分:1)

当前方法的问题在于,运行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

答案 1 :(得分:0)

就像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()