以编程方式更改选项卡键问题-c#窗口应用程序
我已在windows窗体中将“ENTER”键设置为“TAB”键 下面是代码以编程方式更改选项卡键问题-c#窗口应用程序,c#,winforms,combobox,windows-applications,C#,Winforms,Combobox,Windows Applications,我已在windows窗体中将“ENTER”键设置为“TAB”键 下面是代码 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { KeyEventArgs e = new KeyEventArgs(keyData); if (e.KeyCode == Keys.Enter) { SendKeys.Send("{TAB}");
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
KeyEventArgs e = new KeyEventArgs(keyData);
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
}
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
return base.ProcessCmdKey(ref msg, keyData);
}
它与所有控件都能完美地工作,但当我在任何组合框上按ENTER键时,它会使用两个选项卡索引。
例如
TabIndex
属性,设置的顺序应使控件基于Tab键的按下而聚焦
也就是说,您不应该使用
SendKeys.Send(“{TAB}”)
方法来模拟TAB键按下。为此,您应该使用方法。只需返回true代码>发送选项卡后:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
KeyEventArgs e = new KeyEventArgs(keyData);
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
return true;
}
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
return base.ProcessCmdKey(ref msg, keyData);
}
谢谢您的回复,但您能否解释一下如何使用控件。选择下一个控件方法?我是这方面的新手。@Mr.Go您应该能够调用this。选择nextcontrol(cc.ActiveControl,true,true,true,true)代码>未测试。看看这是否有效。或者看看类似的问题嘿,还是不行,伙计。在组合框上,它需要2个选项卡…:(您的控件(textbox2、textbox3等)中设置了哪些选项卡索引
)?您是否检查了它们是什么?