我有这个代码:
this.searchInput.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.inputKeypress);
private void Keypress(object sender, KeyPressEventArgs e)
{
// If Tab has been pressed
if(122 == (int)e.KeyChar)
{
switchTab(sTab);
MessageBox.Show(sTab);
}
}
它的作用是将焦点集中在另一个元素上 . 但是,当焦点设置为TextBox,并且我按TAB时,它只在TextBox中创建一个选项卡,并且不会将焦点设置在下一个元素上 .
任何人都知道如何才能完成这项工作?
我试过设置e.Handled = true;但那不起作用......
3 回答
您是否尝试将
TextBox
上的AcceptsTab
设置为false
?编辑:
这没什么意义 . 我运行了一个小测试应用程序,当
AcceptsTab
和Multiline
属性都是true
时,tab键只会使焦点远离TextBox
,无论是否为KeyPress
定义了事件处理程序 .你确定其他一些代码没有将
AcceptsTab
设置为true
吗?如果是,将Multiline
设置为false
是否会更改选项卡行为?你能发布更多相关代码吗?将文本框的
AcceptsTab
属性设置为false
?您需要像这样创建控件的实例,并重写以下方法:
构建解决方案,然后通过在工具箱中的用户控件下找到它,将常规TextBox替换为新的'NoTabTextBox' .
这将捕获Tab键并强制它不执行任何操作 .