VB.Net, как дождаться закрытия другой формы, прежде чем продолжить - PullRequest
1 голос
/ 25 января 2010

У меня есть маленький экран входа в систему, который появляется, если пользователь выбирает определенный элемент в моей главной форме. Как заставить мой код прекратить выполнение, пока форма входа в систему не закроется?

Это то, что я делаю до сих пор. По сути, я хочу выполнить код после закрытия MyLogin.

    BMSSplash.MyLogin.Show()

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

Ответы [ 4 ]

7 голосов
/ 25 января 2010

Один простой и разумный вариант - показывать форму модально с 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 голос
/ 25 января 2010

Вместо этого используйте BMSSplash.MyLogin.ShowDialog(), чтобы окно отображалось как диалоговое окно модальный .

0 голосов
/ 26 февраля 2010

p.s. Если вы хотите сделать .showDialog с «всплывающим» экраном, вы можете добавить таймер в эту форму и настроить его на me.dispose при срабатывании таймера.

0 голосов
/ 25 января 2010

Чтобы остановить выполнение другого кода, вам нужно показать другое окно как модальное диалоговое окно. Обычно это делается с перегрузкой WinForm s type by calling the ShowDialog overload which accepts an IWin32Window` и передачей текущей исполняемой формы. Обычно я.

BMSSplash.MyBuddy.ShowDialog(Me)

У меня мало опыта в реализации заставок, и у него может быть немного другой API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...