c#用tab控件禁用箭头导航

本文关键字:导航 控件 tab | 更新日期: 2023-09-27 18:03:57

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

当我按左或右键时,标签页改变,我希望禁用标签控制键盘导航。

这是可能的吗?

c#用tab控件禁用箭头导航

你不需要扩展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不改变页面。表单和tabControl1的KeyUp正常触发

我的建议是,您只需在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);
}

我想你正在搜索这个。

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

这是我从

得来的