如何解决无法引发其他表单的按钮单击事件
我有两种形式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'事件来再次尝试,但仍然无法正常工作。
解决方法
当前方法的问题在于,运行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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。