2013-02-14 3 views
1

У меня есть приложение C# WinForm. В основной форме у меня есть пользовательский элемент управления. Я хочу, чтобы каждый раз, когда на клавиатуре был нажат ключ, я хотел бы, чтобы мой пользовательский элемент управления получил ввод на клавиатуре, так что события, связанные с клавиатурой (KeyDown, KeyUp и KeyPress), срабатывают внутри одного конкретный пользовательский контроль.Перенаправление активности клавиатуры на конкретный элемент управления

Мне нужна фактическая основная форма и любой другой пользовательский элемент управления, чтобы игнорировать нажатие клавиши. Это возможно?

+0

крючок на клавиатуре! –

+0

http://stackoverflow.com/questions/1776664/c-sharp-low-level-keyboard-hook-not-working –

ответ

0

Вы можете сделать это, убедившись, что ваш контроль всегда имеет фокус. Простой способ в событии Control.LostFocus установить фокус назад. Базовый класс UserControls не очень хорош в получении фокуса, поэтому вместо этого вы можете выбрать элемент управления в своем пользовательском элементе управления, чтобы всегда иметь фокус и получать события.

Смежные вопросы