如何在按下TAB键时捕获winform

时间:2009-12-02 15:50:18

标签: c# winforms

我开发了一个网格控件,我希望当按Tab键时,它会从另一个单元格跳转。问题在于,无论什么事情我都会嫌疑,或者在按下选项卡时覆盖控件,它永远不会被调用。我也尝试在Form级别捕获Tab,但它是相同的,任何Key事件都响应TAB。 有什么建议吗?

4 个答案:

答案 0 :(得分:4)

您是否尝试覆盖IsInputKey

答案 1 :(得分:1)

PreviewKeyDown或KeyPress应该适合你。在测试代​​码时,你确定你的GridControl得到了重点吗?

答案 2 :(得分:1)

您是否尝试重写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);
}

答案 3 :(得分:0)

设置Form.KeyPreview = false