标签在哪里?

时间:2011-03-27 09:55:05

标签: c# winforms controls

我正在开发winform项目。在运行时,我通过tab键移动不同的控件;在一个按钮后,我的标签消失2次点击。我尝试了一切来解决这个问题。我为winform中的所有控件设置了tabstop=false,但我仍然遇到同样的问题。

然后我决定添加以下代码:

Control nextControl = this.GetNextControl(this.guipnlReportPatientMeasurementDetails.Controls[10], true);

其中GetNextControl属性获取控件的名称,按下Tab键后我的控件将移动,Controls[10]是按钮。那么我应该在哪里放置一段代码,以便获得下一个控件的名称。它应该在button_click事件中还是在其他地方? 伙计们请建议。

3 个答案:

答案 0 :(得分:2)

您应该根据要强加的Tab顺序为每个控件设置TabIndex属性(可以通过设计器设置)。

仅为要从标签选择中排除的控件设置TabStop = false

还有一个有用的按钮,在表单上显示TabIndexes:

enter image description here

答案 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键顺序。你做到了吗?