我的表单中有一个tabcontrol,我需要使用keyup事件来管理一些事情。c#使用tabcontrol禁用箭头导航
当我按左或右按钮,标签页改变,我希望禁用tabcontrol键盘导航。
这是可能的吗?
我的表单中有一个tabcontrol,我需要使用keyup事件来管理一些事情。c#使用tabcontrol禁用箭头导航
当我按左或右按钮,标签页改变,我希望禁用tabcontrol键盘导航。
这是可能的吗?
您不需要扩展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通常会触发。
谢谢!这工作正常! – ghiboz 2013-03-14 14:41:34
我的建议是,你根本抢在Form
级别的密钥和(通过返回true
),以便控制不会拿到钥匙按Handled
属性设置为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();
}
你有没有考虑继承控件,然后给它自己的功能? – LukeHennerley 2013-03-14 12:55:45
你可以在'Form'级别处理这些'somethings'吗? – 2013-03-14 12:59:13
我在表单级别管理'有些事情',我使用表单的键入,但是当我按左或右时,选项卡更改页面 – ghiboz 2013-03-14 13:03:34