C# 如何在按下TAB键时捕捉winform

C# 如何在按下TAB键时捕捉winform,c#,winforms,C#,Winforms,我开发了一个网格控件,我想当按下Tab键时,它会从一个单元格跳到另一个单元格。问题是,无论我在控件上引用了什么事件,或者我在按下tab键时重写了控件,它都不会被调用。我也尝试在表单级别捕获选项卡,但它是相同的,任何关键事件都会响应选项卡。 有什么建议吗?Set Form.KeyPreview=false。Set Form.KeyPreview=false。PreviewKeyDown或KeyPress都应该适合您。您确定在测试代码时GridControl获得了焦点吗?PreviewKeyDown

我开发了一个网格控件,我想当按下Tab键时,它会从一个单元格跳到另一个单元格。问题是,无论我在控件上引用了什么事件,或者我在按下tab键时重写了控件,它都不会被调用。我也尝试在表单级别捕获选项卡,但它是相同的,任何关键事件都会响应选项卡。
有什么建议吗?

Set Form.KeyPreview=false。

Set Form.KeyPreview=false。

PreviewKeyDown或KeyPress都应该适合您。您确定在测试代码时GridControl获得了焦点吗?

PreviewKeyDown或KeyPress应该适合您。测试代码时是否确定GridControl获得焦点?

是否尝试重写?

是否尝试重写?

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

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

这对Tab键没有影响这对Tab键没有影响PreviewKeyDown不仅仅适用于WPFPreviewKeyDown不仅仅适用于WPF