События от клавиатуры в .NET (Visual Studio): что за чем выполняется?
...конечно, не только в Studio или .NET Framework, но и вообще в масдайке так.
Подобный пример для C# есть на MSDN, сделаем ещё на C++/CLI для ответа на часто задаваемый вопрос "В каком порядке обрабатываются нажатия клавиш событиями от клавиатуры?"
Пример учитывает последовательность выполнения событий KeyDown - KeyPress - KeyUp
и регулирует "глубину" обхода цепочки с помощью переменной класса Handled
. Стандартный флажок e->Handled
выполняет другую функцию - "не пускает" обработку событий к дочерним компонентам формы. У формы установлено свойство KeyPreview = true
, чтобы она первой "ловила" нажатия клавиш. Многострочное текстовое поле textBox1
с установленным свойством ReadOnly = true
ведёт лог нажатий.
По логу и из комментария на форме можно увидеть, нажатия каких клавиш обрабатываются специальным образом и какие цепочки событий при этом возникают.
Вот скриншот примера в работе и архив проекта Studio 2015, сработавшего и в версии 2019.
скриншот приложения в работе
Скачать этот пример в архиве .zip с проектом Visual Studio 2015 на C++ (7 Кб)
18.11.2019, 19:37 [1329 просмотров]