Я работаю над приложением WinForms, которое использует System.Windows.Forms.PrintPreviewDialog
для отображения диалогового окна предварительного просмотра. Когда пользователь нажимает ESC в этом диалоговом окне, я хотел бы закрыть диалоговое окно. К сожалению, я не могу понять, как это сделать. Я попытался установить обработчик события KeyDown/PreviewKeyDown, но он никогда не вызывается. Я также попытался настроить фокус на диалог (и на его PrintPreviewControl), думая, что это проблема, но это тоже не помогло. Кто-нибудь знает, как это сделать?Закрыть PrintPreviewDialog при нажатии ESC
ответ
Я закончил настройку PrintPreviewDialog
и переопределив его метод ProcessCmdKey
, чтобы закрыть форму, когда пользователь нажимает ESC. Это кажется самым чистым решением.
Вот код, который я написал:
using System.Windows.Forms;
namespace MyProject.UI.Dialogs
{
class CustomPrintPreviewDialog : PrintPreviewDialog
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// Close the dialog when the user presses ESC
if (keyData == Keys.Escape)
{
this.Close();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
}
Я не пробовал, но не System.Windows.Forms
s звонит CancelButton
при нажатии Esc? Попробуйте создать кнопку «Отменить», которая вызывает .Close
на форме.
Это интересная возможность, но я предпочел бы не добавлять какие-либо дополнительные элементы управления в форме. Я нашел решение, которое включает в себя переопределение функции «ProcessCmdKey» диалогового окна (см. Мой собственный ответ, в другом месте на этой странице), который мне доволен. –
- 1. Обнаружить $ mdDialog закрыть при нажатии ESC
- 2. Закройте лайтбокс при нажатии ESC
- 3. Thickbox не закрывается при нажатии клавиши Esc при фокусировке iframe.
- 4. Как закрыть окно, нажав «esc» в c?
- 5. фиксация фокуса при нажатии клавиши «esc»
- 6. Qt PrintPreviewDialog, при нажатии кнопки «Печать», сбои программы. Почему?
- 7. Закрыть Меню JS на ESC
- 8. Отключить Esc закрыть для colorbox
- 9. Угловая ремешка закрывается при нажатии ESC с клавиатуры
- 10. Скрыть меню при нажатии ESC с помощью Javascript
- 11. Необходимо, чтобы всплывающее окно закрывалось при нажатии клавиши esc
- 12. Закрыть окно при нажатии кнопки
- 13. Закрыть меню переключения при нажатии
- 14. winforms - contextMenuStrip - закрыть при нажатии
- 15. Как закрыть iframe при нажатии?
- 16. JavaFx закрыть окно при нажатии esc, не работая над табличным представлением?
- 17. Закрытие модального окна при нажатии на внешнюю сторону или ESC
- 18. Как закрыть меню при нажатии и при нажатии пользователем?
- 19. jQuery Fancybox - Закрыть на кнопке ESC не работает
- 20. Закрыть всплывающее окно с ключом Esc
- 21. (UWP) Использование ESC Key Закрыть MODALDIALOG
- 22. Как закрыть элемент на кнопке esc?
- 23. Закрыть меню, нажав меню и ESC
- 24. Сделать задачу Flow Inline Popup закрыть на кнопку «esc»
- 25. Продолжить загрузку при нажатии клавиши «esc» в браузере
- 26. Предотвращение выхода из полноэкранного режима при нажатии «ESC» в Flex
- 27. Как выполнить блок кода JS при нажатии клавиши ESC?
- 28. Остановить JS при нажатии кнопки остановки браузера или ESC
- 29. Закрыть меню при нажатии на него вне
- 30. закрыть отзывчивое меню при нажатии/прикосновении
Хорошее решение, спасибо, что разместили его на свой вопрос. –
Спасибо, это было действительно полезно –