Как поймать winform при нажатии клавиши TAB - PullRequest
1 голос
/ 02 декабря 2009

Я разработал Grid Control, и я хочу, чтобы при нажатии Tab он переходил из одной ячейки в другую. Проблема заключается в том, что независимо от того, какое событие я описываю или перезаписываю в элементе управления, при нажатии вкладки он никогда не вызывается. Я также пытаюсь поймать Tab на уровне формы, но это то же самое, любые события Key реагируют на TAB. Есть предложения?

Ответы [ 4 ]

4 голосов
/ 02 декабря 2009

Вы пытались переопределить IsInputKey ?

1 голос
/ 02 декабря 2009

Вы пытались переопределить ProcessCmdKey?

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if(GridControlFocused)
    {
        switch(keyData)
        {
           case Keys.Tab:
           // put code here to jump to next cell.
           return true;
        }
    }

    return base.ProcessCmdKey(ref msg, keyData);
}
1 голос
/ 02 декабря 2009

Либо PreviewKeyDown, либо KeyPress должны работать на вас. Вы уверены, что ваш GridControl получил фокус, пока вы тестировали свой код?

0 голосов
/ 02 декабря 2009

Набор Form.KeyPreview = false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...