В моем приложении я добавил сочетания клавиш (обработчик событий) в TextBox. Одним из них является Ctrl + H, который показывает всплывающее окно Find & Replace.
В обработчике событий KeyDown моей формы я проверяю нажатие клавиш Ctrl + H:
case Keys.H:
ShowFindReplaceDialog(true); // This line makes the SuppressKeyPress not work
e.SuppressKeyPress = true;
break;
Теперь, Ctrl + H - это стандартное сочетание клавиш, эквивалентное нажатию клавиши «Backspace», поэтому мне нужно подавить это.
Проблема в том, что отображение всплывающего окна приводит к тому, что подавление не работает. Итак, всплывающее окно показано, и после его закрытия я вижу, что клавиша возврата (Ctrl + H) все еще проходит.
Как это можно заставить работать?
N.B. Ради полноты: вы столкнулись с той же проблемой с MessageBox, под ней все ShowDialog.