Tab索引不适用于面板中的控件?

时间:2013-04-17 14:53:31

标签: vb.net winforms panel tabindex

我有一个vb.net窗体,包含大约15个组合框和15个文本框,以及其他几个控件。所有这些TextBoxesComboBoxes都位于面板中。原因是我需要根据用户选择/输入的内容调整控件的可见属性,因此将每个标签和控件组合在一起放在自己的面板中似乎是一种简单的方法。

我通过属性设置了标签顺序,但它不起作用。当我浏览表单时,它会跳过并且不会按照我设置的Tab键顺序。这是因为我的控件都位于不同的面板中吗?我已经将TabStop设置为false,因为我不想要一个tabstop,我对这里发生的事情感到有些困惑。事实上我的ComboBoxesTextBoxes都在他们自己的面板中这一事实阻止我的标签索引起作用。任何人都可以确认这一点或对可能发生的事情有其他想法吗?如果我创建新表单,则TabIndex有效。

4 个答案:

答案 0 :(得分:10)

信不信由你,面板排序绝对会影响TabIndex。我发现在多面板表单上处理标签排序的最简单方法是使用LarsTech建议的View> Tab Order。然后,一旦选项卡顺序可见,您将能够看到面板如何影响每个面板中包含的控件的整体排序。接下来,按照您希望流程的顺序,在实际面板上一次左键单击一个。您会注意到它会自动对每个面板内的控件进行按顺序排序,整个面板的排序顺序与您指定的顺序相同。完成此操作后,您可以单击每个面板中的每个控件,在给定面板中设置控件的相对Tab键顺序。

答案 1 :(得分:3)

尝试使用Visual Studio设计器中的“View - Tab Order”,然后按所需顺序单击每个容器和控件。父容器(面板)的选项卡索引很重要。

答案 2 :(得分:2)

将TabStop设置为FALSE表示当轮到Tab键顺序时它会被跳过。 通常你会将LABELs的TabStop设置为FALSE,将所有其他INTERACTIVE控件设置为TABSTOP = True(除非控件被禁用)。

不要跳过Tab到Tab。您的TabStop和Tab顺序应该类似于下面的列表。

Name         Parent        TabOrder        TabStop
=======================================================
Form         -             0               -
TabStrip1    Form          1               True
Tab1         TabStrip1     2               True
Label1       Tab1          3               False
Textbox1     Tab1          4               True
Label2       Tab1          5               False
Combo1       Tab1          6               True

Tab2         TabStrip1     7               True
Label3       Tab2          8               False
Textbox2     Tab2          9               True
Label4       Tab2          10              False
Combo2       Tab2          11              True

Tab3         TabStrip1     12               True
Label5       Tab3          13               False
Textbox3     Tab3          14               True
Label6       Tab3          15               False
Combo3       Tab3          16               True

答案 3 :(得分:1)

我发现你必须查看每个控件的每个选项卡索引和控件分组(组框,面板等等)。与Classic VB不同,.Net不会为您更新所有其他选项卡索引。您可以在表单,面板或其他分组类型上使用相同的选项卡索引拥有任意数量的控件。

BTW,对于发布了View - Tab Order菜单项的人,谢谢。我不知道它在那里,它极大地帮助我正确地订购了我有多个嵌套组框的表格。这是查看Tab键顺序的绝佳工具。如果您使用此功能,请务必注意每个嵌套级别。