无法引发另一种形式的按钮单击事件
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()
我有两个表单 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()