|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
Добрый день! Столкнулся с особенностью поведения MessageBox. В форме организована обработка события KeyUp, которая закрывает форму по нажатию клавиши Esc. Если в форме вызвать MessageBox и нажать Esc для его закрытия, то это нажатие помимо MessageBox-а закроет и саму форму, а нужно закрыть только MessageBox. В прошлой жизни я бы после закрытия MessageBox-а очистил клавиатурный буфер. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
Как это можно разрулить? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 14:02 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
OldAlex, Самый простой способ, сделать переменную флажок, перед MsgBox его выставлять, в обработке Escape учитывать его и отключать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 14:14 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
OldAlex, Сделай проект в конструкторе без динамики. Убери всё лишнее и приложи тест файлы. Проверим. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 14:19 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
VSVLAD, В реальности, обработчик клавиши Esc общий для всех форм и "лежит" в родительской форме. Его бы трогать не хотелось. Petro123, Архив с примером приложен. VS2013. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 14:49 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
OldAlexАрхив Я говорил, что все свойства в конструкторе, а не в файле ччччч.cs. Событие назначается двойным кликом в окне свойства - события. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 15:45 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
Petro123, ОК, поправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 15:57 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
OldAlexPetro123, ОК, поправил. http://www.sql.ru/forum/actualfile.aspx?id=20698422] Приложенный файл (TestCloseEsc.rar - 84Kb) Ничего не пойму. Почему в Form1.cs 50 строк каких то комментарий? Почему там какая то отписка события? Почему в конструкторе подписка? Там доджно быть 3 строки messageBox, key=esc и close. Проект ближе к ночи если смогу посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 16:41 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
На своем нулевом проверил - все Ок. Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 17:33 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
OldAlex, Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
этот код говорит о том что закрывается по экейпу именно Form1 , мессадж бокс закрывается потому что ты закрыл его владельца(owner) - Form1 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 18:01 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
pation, Похоже на то. Поэтому я перед вызовом мессадж бокс отписался от события KeyUp: Код: c# 1.
Далее вызываю мессадж бокс и на его фоне нажимаю клавишу Escape. Мессадж бокс закрывается. Далее я снова подписываюсь на события KeyUp: Код: c# 1.
И форма закрывается. :( (срабатывает событие KeyUp c KeyCode == Keys.Escape) Если на "подписке" поставить точку останова, а затем продолжить, то все ОК, форма не закроется. Подписываюсь на KeyUp с помощью таймера (0,5 с) - все ОК. Но как-то криво что ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 19:39 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
OldAlex, Я же тебе написал, что у меня все Ок. Не надо никаких событий руками. И событие press а неup ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 22:36 |
|
Закрытие MessageBox по Escape закрывает форму
|
|||
---|---|---|---|
#18+
Petro123, Спасибо! Да, действительно KeyPress вместо KeyUp решил проблему. Вопрос закрыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2017, 23:02 |
|
|
start [/forum/topic.php?fid=20&fpage=41&tid=1399772]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 139ms |
0 / 0 |