我正在开发winform项目。在运行时,我通过tab键移动不同的控件;在一个按钮后,我的标签消失2次点击。我尝试了一切来解决这个问题。我为winform中的所有控件设置了tabstop=false
,但我仍然遇到同样的问题。
然后我决定添加以下代码:
Control nextControl = this.GetNextControl(this.guipnlReportPatientMeasurementDetails.Controls[10], true);
其中GetNextControl属性获取控件的名称,按下Tab键后我的控件将移动,Controls[10]
是按钮。那么我应该在哪里放置一段代码,以便获得下一个控件的名称。它应该在button_click
事件中还是在其他地方?
伙计们请建议。
答案 0 :(得分:2)
您应该根据要强加的Tab顺序为每个控件设置TabIndex
属性(可以通过设计器设置)。
仅为要从标签选择中排除的控件设置TabStop = false
。
还有一个有用的按钮,在表单上显示TabIndexes:
答案 1 :(得分:1)
你正在挖自己一个洞。找出真正的问题是什么,有某种控制要么在窗外,要么没有正确指出焦点。如果你不知道可能是什么控件,那么添加一个计时器和一个标签。将计时器的Enabled属性设置为True,Interval设置为200.编写Tick事件,如下所示:
private void timer1_Tick(object sender, EventArgs e) {
if (this.ActiveControl == null) label1.Text = "No control?";
else label1.Text = this.ActiveControl.Name;
}
告诉您标签的位置。
答案 2 :(得分:0)
在解析使用此代码之前,我首先尝试修复窗口上的Tab键顺序。你做到了吗?