C# TabIndex不能正常工作
我有一个windows窗体应用程序。表单上有三个GroupBox。 每个groupbox都包含一些控件。请看图片。 有一个包含几个复选框的groupbox“标志”。“标志”位于“groupbox1”中。 我使用Tab键遍历每个控件,但它不适用于“flag”中的复选框。我确实为每个控件设置了适当的tabindex 它适用于文本框和按钮,但不适用于复选框 为什么??谢谢你的帮助 编辑C# TabIndex不能正常工作,c#,.net,winforms,C#,.net,Winforms,我有一个windows窗体应用程序。表单上有三个GroupBox。 每个groupbox都包含一些控件。请看图片。 有一个包含几个复选框的groupbox“标志”。“标志”位于“groupbox1”中。 我使用Tab键遍历每个控件,但它不适用于“flag”中的复选框。我确实为每个控件设置了适当的tabindex 它适用于文本框和按钮,但不适用于复选框 为什么??谢谢你的帮助 编辑 // groupBox2 // this.groupBox2.Controls
// 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.
对于System.Windows.Forms.GroupBox: 您应该确保您的GroupBox
标志
具有适当的TabIndex集
发件人:
此外,默认情况下,GroupBox控件有自己的TabIndex
值,它是一个整数。GroupBox控件本身不能具有
在运行时聚焦。因此,GroupBox中的每个控件都有自己的
十进制选项卡索引值,以.0开头。当然,作为索引
如果GroupBox控件的
相应地增加。如果将TabIndex值从5更改为6,
组中第一个控件的TabIndex值将自动显示
对6.0的更改,等等
另外,请确保GroupBox标志的属性未设置为false。我认为false是默认值
对于System.Windows.Controls GroupBox:
确保已设置该属性。这也默认为false
更新:您的所有控件似乎都被添加到了groupBox3
。您应该确保它们中的每一个都只添加到其包含的groupbox中。例如,checkBox1
、checkBox2
和checkBox3
都应添加到标志
,该标志本身应添加到groupBox1
groupBox3
应该只包含Back、Next、Finish和Cancel。
我发现在WinForms组框中获取选项卡顺序的唯一方法是更改控件添加到生成的InitializeControl方法中的组框的顺序
如果有多个分组框,则必须检查分组框添加到其容器的顺序,并可能对其进行更改
我真的不喜欢编辑生成的代码,但就我所见,这是解决这个问题的唯一方法
设置组框的TabStop属性没有任何帮助。请告诉我们在连续按tab键后哪个控件处于活动状态。代码只是tabindex的数字。除复选框外,所有控件都处于活动状态。您使用的是System.Windows.controls.GroupBox
还是System.Windows.Forms.GroupBox
?this.groupBox1=new System.Windows.Forms.GroupBox();GroupBox 1的TabStop/TabIndex设置是什么?GroupBox没有TabStop属性。请检查链接。它专门用于GroupBox.TabStop属性的MSDN文章。此外,我测试了创建一个新的GroupBox,并验证了a)该属性存在,b)它默认为false.ok。也许复选框只用于鼠标而不是按键?我更新了答案,将System.Windows.Controls.GroupBox
和System.Windows.Forms.GroupBox
的属性都包括在内。我最初的回答是基于您使用表单GroupBox的假设,这可能解释了为什么我发现存在TabStop属性而您没有。您的复选框应该将TabStop
(或IsTabStop
)默认为true。我仍然认为问题出在您的标志
GroupBox没有正确设置其TabStop
属性。