【发布时间】:2015-03-21 00:46:12
【问题描述】:
在我的应用程序中,youtube video 在 groupbox 中有一个 numericupdown 控件 numericupdown3,并且在 groupbox 之外还有一些其他 textboxes。当光标在 numericupdown 控件中并且当我点击选项卡时,它应该将光标移动到 textbox3 即组框下的第一个文本框。但它改为移动到tbx3,即组框下的第二个文本框。如视频所示,我使用processCmdKey() 进行处理,但它仍然没有将光标移动到textbox3。有趣的是在代码中它显示当前活动控制为textbox3,但在表单上,光标在tbx3 上闪烁。有没有办法来解决这个问题?我还设置了所有显示在视频中的标签顺序。
这是 youtube 视频的 gif 动画
这是 ProcessCmdKey() 事件中的代码,请注意我已经设置了 tab 顺序 numericupdown3 -> 1、textbox3 --> 2 和 tbx3 --> 3 并且在所有其他中禁用并将 TabStop 设置为 false文本框控件
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Tab)
{
if (this.ActiveControl.Name == numericUpDown3.Name)
{
this.ActiveControl = this.textBox3;
Console.WriteLine(this.ActiveControl.Name);
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
PS-我使用 VS 2010(未安装 SP)
【问题讨论】:
-
请在您的问题中添加一些重现问题的最少代码。很难通过视频来诊断问题(因为 youtube 被屏蔽了,我无论如何都无法在工作中看到)
-
您查看过控件的 Tab 键顺序吗?
-
@SteveMitcham 我已经用一些代码更新了帖子
-
@BerndLinde 是 numericupdown3 是 1,textbox3 是 2,tbx3 是 3
-
控件是否在不同的面板/组框中?