4

vb.net 中有没有办法暂停函数\事件并等到另一个表单关闭才能继续

例子:

    Private Sub B1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B1.Click

label1.text="Hello testing.." '1st function

form2.show() '2nd function

'MAKE FORM WAIT FOR FORM 2 TO CLOSE...
'THEN CONTINUE WITH THE NEXT FUNCTION

msgbox("Some function that was waiting in the event") '3rd function

end sub

我能找到的最接近我想要的是一个输入框,但是一个输入框在我想要的东西上是有限的,尽管它会等待,因为我希望 Form2 能够正常工作。

另一个建议是循环直到 form2 关闭,但是作为解决方案,这是 hacky 和不专业的(我的意见)

4

3 回答 3

18

只是改变:

form2.Show()

至:

form2.ShowDialog()

ShowDialog()的文档中:

您可以使用此方法在应用程序中显示模式对话框。调用此方法时,它后面的代码直到对话框关闭后才会执行

请注意,在上面的简化示例中,我们没有捕获ShowDialog().

我们可以使用返回值来确定是否应该执行后续代码:

If form2.ShowDialog() = DialogResult.OK Then
    ' ... do something in here ...
End If
于 2013-10-16T14:28:10.607 回答
3

使用ShowDialog它 将表单显示为模式对话框。

您可以使用检查表单的输出结果DialogResult

Public Sub ShowMyDialogBox()
    Dim testDialog As New Form2()

    ' Show testDialog as a modal dialog and determine if DialogResult = OK.
    If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
        ' Read the contents of testDialog's TextBox.
        txtResult.Text = testDialog.TextBox1.Text
    Else
        txtResult.Text = "Cancelled"
    End If
    testDialog.Dispose()
End Sub 'ShowMyDialogBox

要将 DialogResult 分配给按钮,只需使用 button 属性:button.DialogResult

于 2013-10-16T14:33:58.123 回答
0
public cerrar

Private Sub form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

form2.show()

Do
cerrar = form2.Visible
Loop Until cerrar = False

continue codigo

End Sub

于 2021-01-06T07:31:21.753 回答