У меня проблема с перехватом событий клавиатуры в C # - PullRequest
0 голосов
/ 26 июня 2009

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

Ответы [ 3 ]

1 голос
/ 26 июня 2009

Взгляните на этот ТАК вопрос .

Включен ли KeyPreview? Какой контроль имеет фокус?

0 голосов
/ 23 февраля 2013

Вы должны сосредоточиться где-нибудь в коде, чтобы правильно использовать ProcessCmdKey.

0 голосов
/ 26 июня 2009

Я не вижу причины, почему форма не просматривает клавиши со стрелками. Но в любом случае, если вам нужен более низкоуровневый доступ к обработке клавиатуры (в частности, к обработке ярлыков), вы можете переопределить форму ProcessCmdKey .

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Left)
    {
        // your code here
        return true;
    }
    return base.ProcessCmdKey(ref msg, keyData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...