WinForms Tab命令工具:破碎还是只是令人困惑?

时间:2010-06-17 17:02:11

标签: c# winforms visual-studio-2005 tab-ordering

我有一个带有一堆面板的表单,以及一些面板组内的面板。在Vs2005中使用TabOrder工具时,容器外部的控件给出整数(0),面板内的控件给出小数(72.0),组框内面板内的控件给出三部分值(73.73.0)。不幸的是,生成的Tab键顺序与我单击我的控件的顺序无关。

此工具是否仅支持嵌套容器?难道我做错了什么?我点击时可能按住Shift-或Ctrl-(我试过这些没有成功)?

我是否会被迫手动输入所有控件的三部分Tab键顺序?那将是一个无赖。

5 个答案:

答案 0 :(得分:7)

标签顺序工具不是为您手动输入值而设计的;它是为您按照您希望它们作为用户选项卡进行的顺序单击控件而设计的。

数字不是小数;它们表示其父容器中控件的Tab键顺序。例如,如果您的表单中Panel名为panel1且其中Button名为button1,则button1会显示如下数字:

X.Y
  • Xpanel1
  • 的标签顺序
  • Ybutton1panel1 的标签顺序。

我会承认设计师并不像它应该的那样直观(或透明),但确实有效。

答案 1 :(得分:2)

VS2010中的组框内的文本框和按钮也存在同样的问题。 TabOrder工具毫无用处:无论我如何重新订购制表位,Tab命令都会被破坏。为了生成正确的Tab键顺序,我必须重新排序如何在表单设计器初始化代码中将控件添加到组框中:

this.groupBox2.Controls.Add(this.startTimeTextBox);
this.groupBox2.Controls.Add(this.endTimeTextBox);
this.groupBox2.Controls.Add(this.exitButton);

这种方式的tab顺序是startTimeTextBox - > endTimeTextBox - > exitButton等等。

答案 2 :(得分:0)

我想我想出了在设计师中做到这一点的方法:显然你必须单击面板/组合框以分配完整排序的不同部分;通过这种方式,似乎需要使用bredth-first click方法,而不是单击子控件本身。

有点难过,因为它迫使你知道整个表单的完整结构,而不仅仅是用户看到的内容。

答案 3 :(得分:0)

我遇到了同样的问题并发现了这个工具:http://archive.msdn.microsoft.com/cdstabindex

我必须更改清单才能使其与VS2010一起使用。另外,我已经修改了自己的源代码以使UI更好一些,但即便如此,我也建议你看一下这个工具。

答案 4 :(得分:0)

控件中删除组框,然后重试这对我有用:)