БлогNot. События от клавиатуры в .NET (Visual Studio): что за чем выполняется?

События от клавиатуры в .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 Кб)


теги: c++ программирование windows studio

18.11.2019, 19:37; рейтинг: 316