我有两种形式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'事件来再次尝试,但仍然无法正常工作。
答案 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()