我有一个带有一堆面板的表单,以及组框内的一些面板。在 Vs2005 中使用 TabOrder 工具时,容器外的控件被赋予整数(0),面板内的控件被赋予小数(72.0),组框内的面板内的控件被赋予三部分的值(73.73.0)。不幸的是,生成的标签顺序与我单击控件的顺序无关。
这个工具根本不支持嵌套容器吗?难道我做错了什么?当我单击时可能按住 Shift- 或 Ctrl- (我已经尝试过这些但没有成功)?
我是否将被迫为我的所有控件手动输入由三部分组成的标签顺序?那将是一个无赖。
我有一个带有一堆面板的表单,以及组框内的一些面板。在 Vs2005 中使用 TabOrder 工具时,容器外的控件被赋予整数(0),面板内的控件被赋予小数(72.0),组框内的面板内的控件被赋予三部分的值(73.73.0)。不幸的是,生成的标签顺序与我单击控件的顺序无关。
这个工具根本不支持嵌套容器吗?难道我做错了什么?当我单击时可能按住 Shift- 或 Ctrl- (我已经尝试过这些但没有成功)?
我是否将被迫为我的所有控件手动输入由三部分组成的标签顺序?那将是一个无赖。
跳位顺序工具不是为您手动输入值而设计的;它旨在让您按照您希望它们作为用户选项卡的顺序单击控件。
数字不是小数;它们代表控件在其父容器中的 Tab 键顺序。例如,如果您有一个名为 named 的表单,其中包含一个named Panel
,那么将显示如下数字:panel1
Button
button1
button1
X.Y
X
是标签顺序panel1
Y
button1
是inside 的标签顺序panel1
。我承认设计师并不像它应该的那样直观(或透明),但它确实有效。
我在 VS2010 的组框中的文本框和按钮也有同样的问题。TabOrder 工具毫无用处:无论我如何重新排序制表位,制表符顺序都被破坏了。为了做出正确的选项卡顺序,我必须重新排序控件如何添加到表单设计器初始化代码中的组框:
this.groupBox2.Controls.Add(this.startTimeTextBox);
this.groupBox2.Controls.Add(this.endTimeTextBox);
this.groupBox2.Controls.Add(this.exitButton);
这种方式选项卡顺序将是 startTimeTextBox -> endTimeTextBox -> exitButton 等等。
我想我想出了在设计器中做到这一点的方法:诀窍显然是您还必须单击面板/组框才能分配完整排序的不同部分;通过这种方式,似乎需要使用一种范围优先的单击方法,而不是单击子控件本身。
有点可悲,因为它迫使您了解整个表单的完整结构,而不仅仅是用户看到的内容。
我遇到了同样的问题并发现了这个工具: http: //archive.msdn.microsoft.com/cdstabindex
不过,我不得不更改清单以使其与 VS2010 一起使用。此外,我已经为自己修改了源代码以使 UI 更好一点,但即便如此,我还是建议您看看这个工具。
从控件中删除 组框并重试这对我有用:)