новая проблема формы c # - PullRequest
2 голосов
/ 30 июня 2011

Я знаю, что этот заголовок не говорит много, но это действительно неправильно, чтобы объяснить, что я хочу, в нескольких словах.

У меня есть две формы (main & help).Как только я нажимаю кнопку в главной форме, всплывающие подсказки.Я хотел бы реализовать функцию, которая блокирует действия пользователя в основной форме, пока он не закроет форму справки.

Я не хотел бы играть с видимыми элементами управления, но я хотел бы иметь эффект, который вы, возможно, видели в какой-то программе, когда пользователь пытается щелкнуть на главной форме, форма справки "мигает" вместе с воспроизведением звука ошибки.Как только пользователь закроет форму справки, программа будет работать как обычно

Надеюсь, вы понимаете, что я имел в виду

Ответы [ 3 ]

7 голосов
/ 30 июня 2011

Это называется модальным диалогом, и, к счастью, ответ прост;покажите ребенка Form методом ShowDialog вместо использования Show.Это блокирующий вызов, который не вернется, пока дочерняя форма / диалоговое окно не будет закрыта, поэтому это означает, что вы можете проверить возвращаемое значение и любые свойства, если это необходимо, сразу после этой строки кода (вероятно, не полезно для окна справки, ноВ большинстве случаев полезно проверить действия пользователя).

using( var dlg = new MyHelpDialog() )
{
    if( dlg.ShowDialog() == DialogResult.OK )
    {
        // user chose "OK", do something (?)
        // you can also access properties of the form after the fact
        string whatever = dlg.SomeStringProperty;   
    }
}
1 голос
/ 30 июня 2011
1 голос
/ 30 июня 2011

То, о чем вы говорите, называется «Модальное окно».См. Как: отображать модальные и немодальные формы Windows

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