c#禁用带tabcontrol的箭头导航

时间:2013-03-14 12:53:51

标签: c# winforms visual-studio-2008 tabcontrol onkeyup

我的表单中有一个tabcontrol,我需要使用keyup事件来管理事情。

当我按向左或向右按​​钮时,标签页会改变,我希望禁用tabcontrol键盘导航。

可以这样做吗?

3 个答案:

答案 0 :(得分:4)

您不需要扩展TabControl,只需订阅其KeyDown事件并处理它。

tabControl1.KeyDown+=new KeyEventHandler(tabControl1_KeyDown);

private void tabControl1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
            {
                e.Handled = true;
            }
        }

tabControl1不会更改页面。表单的keyUp和tabControl1正常触发。

答案 1 :(得分:1)

我的建议是,您只需在Form级抓取这些密钥,然后将Handled属性设置为true(通过返回true),以便控件赢得'按下按键。

将此方法添加到Form

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Left || keyData == Keys.Right)
    {
        // do what you need to do and the
        // return true will stop processing
        return true;
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

答案 2 :(得分:1)

我认为你正在寻找这个。

if (e.KeyCode == Keys.Tab) 
{
    //your logic
    e.SuppressKeyPress();
}

this is where I got it from