четверг, 15 марта 2012 г.

Перехват нажатий клавиш в C#

Иногда, во время написания программ ил игр, требуется перехватить нажатия клавиш на форме приложения. Многим сразу вспомниться событие KeyDown. Казалось бы, что сложного повесить обработчик на событие KeyDown?! Но, если добавить на форму контрол, который перехватывает фокус, то обработчик события начинает вести себя не так, как хотелось бы. Дело в том, что вызывает обработчик активного контрола, например кнопки, и не передается остальным обработчикам. Можно, конечно, всем контролам ставить один обработчик события. Но это не удобно, и могут в последствии появиться подводные камни.. В этой мы решим эту проблему.