我有一个Windows窗体应用程序。在表单上有三个groupbox。 每个组框都包含一些控件。请看图像。
有一个groupbox“flag”,其中包含几个复选框。 “flag”位于“groupbox1”中。 我使用Tab键来浏览每个控件,但它不适用于“flag”中的复选框。我确实为每个控件设置了正确的tabindex。
它适用于文本框和按钮,但适用于复选框。
为什么呢?谢谢你的帮助。
修改
// groupBox2
//
this.groupBox2.Controls.Add(this.pictureBox10);
this.groupBox2.Controls.Add(this.pictureBox9);
this.groupBox2.Controls.Add(this.pictureBox8);
this.groupBox2.Controls.Add(this.pictureBox7);
this.groupBox2.Controls.Add(this.chkStoplight);
this.groupBox2.Controls.Add(this.lblStoplight);
this.groupBox2.Controls.Add(this.chkIsCount);
this.groupBox2.Controls.Add(this.chkExceptionFlag);
this.groupBox2.Controls.Add(this.chkIsActive);
this.groupBox2.Controls.Add(this.lblIsActive);
this.groupBox2.Controls.Add(this.lblExceptionFlag);
this.groupBox3.Controls.Add(this.lblIsCount);
this.groupBox2.Location = new System.Drawing.Point(16, 201);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(321, 70);
this.groupBox2.TabIndex = 10;
this.groupBox2.TabStop = true;
this.groupBox2.Text = "Flags";
//
// chkStoplight
//
this.chkStoplight.AutoSize = true;
this.chkStoplight.Location = new System.Drawing.Point(44, 25);
this.chkStoplight.Name = "chkStoplight";
this.chkStoplight.Size = new System.Drawing.Size(15, 14);
this.chkStoplight.TabIndex = 0;
this.chkStoplight.UseVisualStyleBackColor = true;
In the property, I found TabStop is true for chkStoplight.
答案 0 :(得分:9)
对于 System.Windows.Forms.GroupBox :
您应该确保GroupBox flag
具有适当的TabIndex集。
来自MSDN - How to: Set the Tab Order on Windows Forms:
此外,默认情况下,GroupBox控件具有自己的TabIndex 值,这是一个整数。 GroupBox控件本身不能拥有 专注于运行时。因此,GroupBox中的每个控件都有自己的控件 十进制TabIndex值,以.0开头。当然,作为TabIndex 一个GroupBox控件的增量,其中的控件将是 相应地增加。如果您将TabIndex值从5更改为6, 自动组中第一个控件的TabIndex值 更改为6.0,依此类推
此外,请确保GroupBox flag
的{{3}}属性未设置为false。我相信假是默认的。
对于 System.Windows.Controls GroupBox :
确保已设置TabStop属性。这也默认为false。
<击>
更新:您的所有控件似乎都已添加到groupBox3
。您应该确保每个都只添加到其包含的组框中。例如,checkBox1
,checkBox2
和checkBox3
都应添加到flag
,groupBox1
本身应添加到groupBox3
。 {{1}}应该只包含Back,Next,Finish和Cancel。
击>
答案 1 :(得分:1)
我发现在WinForms组框中获取Tab键顺序的唯一方法是更改生成的InitializeControl方法中控件添加到组框的顺序。
如果您有多个组框,则必须检查组框添加到其容器的顺序,并可能更改它。
我真的不喜欢编辑生成的代码,但据我所知,这是修复此问题的唯一方法。
设置组框的TabStop属性根本没有帮助。