Показать только один экземпляр messagebox.show в c # - PullRequest
0 голосов
/ 30 июля 2009

У меня есть собственное сочетание клавиш для моего приложения, когда пользователь нажимает сочетания клавиш CTRL + ALT + Q, я показываю окно сообщения "Вы уверены, что хотите выйти?" Тогда если нажали ДА, я выхожу из приложения.

Проблема: Я хочу убедиться, что только один раз появляется окно сообщения. Независимо от того, сколько раз пользователь нажимает ярлык.

В настоящее время отображается несколько сообщений при нажатии нескольких ярлыки.

Как это побороть?

Ответы [ 5 ]

2 голосов
/ 30 июля 2009

С MSDN

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

Сообщите об ошибке на connect.microsoft.com!


Принимая во внимание комментарий ck ... Если вы показываете настраиваемое диалоговое окно (форму), то вам нужно вызывать форму с помощью Form.ShowDialog (), а не Show ().

1 голос
/ 30 июля 2009

Быстрым и грязным способом было бы иметь булеву переменную уровня класса, которая отслеживает, когда пользователь пытается выйти. Если это так, для него установлено значение true, и ваша процедура отображения диалогового окна может проверить этот флаг, а затем вернуться, ничего не делая.

0 голосов
/ 30 июля 2009

Я думаю, что вы можете создать свою собственную форму и использовать метод mymessageboxform.show () и проверить результат его диалога.

0 голосов
/ 30 июля 2009

Вы захотите сделать ваше приложение единичным экземпляром, чтобы его можно было запустить только один раз.

Приложение для одного экземпляра

0 голосов
/ 30 июля 2009

Похоже, Singleton Pattern ваш выбор.

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