VB.Net如何在继续之前等待不同的表单关闭

时间:2010-01-25 16:47:09

标签: .net vb.net forms winforms

如果用户选择主表单上的某个项目,我会弹出一个小的登录屏幕。如何让我的代码停止执行直到我的登录表单关闭?

这就是我到目前为止所做的事情。基本上我想在MyLogin关闭后执行代码。

    BMSSplash.MyLogin.Show()

    If isLoggedIn Then
        BMSSplash.MyBuddy.Show()
        Cursor.Current = Cursors.WaitCursor
    End If

4 个答案:

答案 0 :(得分:7)

一个简单而合理的选择是使用ShowDialog而非Show以模态方式显示表单。这将阻止您的应用程序的其余部分,直到表单关闭:

If BMSSplash.MyLogin.ShowDialog() = DialogResult.OK Then
    ' Form was closed via OK button or similar, continue normally... '
    BMSSplash.MyBuddy.Show()
Else
    ' Form was aborted via Cancel, Close, or some other way; do something '
    ' else like quitting the application... '
End If

答案 1 :(得分:1)

使用BMSSplash.MyLogin.ShowDialog()将窗口显示为所谓的模态对话框。

答案 2 :(得分:0)

要停止执行其他代码,您需要将另一个窗口显示为模式对话框。这通常是通过WinForm s type by calling the ShowDialog overload which accepts an IWin32Window`重载并传递当前正在执行的表单。通常是我。

BMSSplash.MyBuddy.ShowDialog(Me)

我对启动画面实现的经验不多,但它的API可能略有不同。

答案 3 :(得分:0)

P.S。如果你想使用“启动”屏幕执行.showDialog,你可以在该表单上添加一个计时器,并在计时器触发时让它显示。