可能是TabIndex无法正常工作的可能原因

Boh*_*ohn 7 c# winforms

所以我从0开始为我的表单上的控件定义tabindex,但在运行时它都搞砸了.形式有点复杂.它有水平和垂直分割器和面板,组框和一些较旧的VB 6.0 activeX控件,它们是一个Tree控件.即使我以编程方式执行并读取previewkeydown eventg并说如果它是TAB然后control2.Focus()它仍然工作错误.太令人沮丧了.有什么想法吗?..表格上还有不需要标签的标签,所以我为它们的索引定义了0.

ker*_*rry 17

你是怎么设置它的?如果您在视觉工作室中使用设计视图中的表单,请选择视图 - >选项卡顺序,然后按所需顺序单击每个项目.

通常适合我.

  • 不同的数字是不同的控件层.您需要选择最高级别然后才能工作.每个图层左上角都有一个数字,然后选择此项,然后按所需顺序排列该图层中的控件 (2认同)
  • 请注意,即使使用表单设计器,当您有嵌套控件时,它也会变得有点奇怪。仅使用设计器选项卡顺序来选择控件的顺序是不够的......您还需要选择包含的控件(例如面板等) - 否则它通常不会按预期工作。 (2认同)

Ali*_*eza 10

原因是控件位于不同的容器中.假设你有panel1.TabIndex = 0和panel2.TabIndex = 1,那么在panel2中,textBox1.TabIndex = 0,在panel1中,textBox2.TabIndex = 1.在运行时,textBox1位于textBox2之前,因为它的面板首先出现!

正如克里所说,使用view-> tab命令查看Tab键顺序的完整层次结构.