Заставить форму прекратить другие действия программы, такие как окно сообщения (в VB.NET) - PullRequest
1 голос
/ 01 марта 2012

Я хочу создать пользовательскую форму (в Visual Basic .NET), которая будет останавливать отзывчивость других процессов, пока форма не будет подтверждена. Было бы неплохо, если бы я мог добавить звуковой сигнал при попытке доступа к основному интерфейсу программы, когда эта форма также отображается (например, как в окне сообщения).

Моя первоначальная идея состояла в том, чтобы создать еще один поток для формы типа messagebox и оставить основной поток в спящем режиме до тех пор, пока на форму типа messagebox тоже не будет получен ответ, однако я думаю, что это приведет к появлению ошибки в основной программе, поскольку просто не отвечал бы и не обновлял свой интерфейс (также стоит отметить, что у меня мало опыта работы с многопоточностью, поэтому это может быть неправильно).

Я действительно не имею большого представления о том, как поступить с этим, любые идеи и / или рекомендации очень ценятся. благодарю вас! :)

1 Ответ

2 голосов
/ 01 марта 2012

Я думаю, что это тип поведения, для которого есть ShowDialog ()

, этот образец находится на странице MSDN для ShowDialog ()

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

Когда код вызывает ShowDialog (), программа продолжает выполнение testDialog и завершает работу только тогда, когда пользователь нажимает OK, Отмена, Закрыть или любой другой метод, который в вызываемом диалоге устанавливает для свойства DialogResult любое значение, отличное от DialogResult.None.

...