我有一个vb.net窗体,包含大约15个组合框和15个文本框,以及其他几个控件 . 所有这些 TextBoxes
和 ComboBoxes
都位于面板中 . 这样做的原因是我需要根据用户选择/输入的内容来调整控件的可见属性,因此将每个标签和控件组合在一起放在自己的面板中似乎是一种简单的方法 .
我've set the tab order via properties, but it doesn'工作 . 当我通过我的表单进行选项卡时,它会跳过并且不会按照我将 TabStop
设为 TabStop
的标签顺序为false,因为我对这里发生的事情感到有些困惑 . 事实上,我的 ComboBoxes
和 TextBoxes
都在他们自己的面板中,这阻止了我的标签索引工作 . 任何人都可以证实这一点或对可能发生的事情有其他想法吗?如果我创建一个新表单, TabIndex
有效 .
4 回答
我发现你必须查看每个控件的每个选项卡索引和控件分组(组框,面板,等等) . 与Classic VB不同,.Net不会为您更新所有其他选项卡索引 . 您可以在表单,面板或其他分组类型上使用相同的选项卡索引拥有任意数量的控件 .
顺便说一句,对于发布了View - Tab Order菜单项的人,谢谢 . 我不知道它在那里,它帮助我非常正确地订购了我有多个嵌套组框的表格 . 这是查看Tab键顺序的绝佳工具 . 如果您使用此功能,请务必注意每个级别的嵌套 .
将TabStop设置为FALSE意味着它将在Tab Order中轮到它时跳过 . 通常,您将LABEL的TabStop设置为FALSE,将所有其他INTERACTIVE控件设置为TABSTOP = True(除非控件被禁用) .
不要跳过Tab到Tab . 您的TabStop和Tab顺序应该类似于下面的列表 .
信不信由你,面板订购绝对会影响TabIndex . 我发现在多面板表单上处理Tab键排序的最简单方法是使用LarsTech建议的View> Tab Order . 然后,一旦选项卡顺序可见,您将能够看到面板如何影响每个面板中包含的控件的整体排序 . 接下来,按照您希望流程的顺序,在实际面板上一次左键单击一个 . 您会注意到它会自动对每个面板内的控件进行子订购,整个面板的排序顺序与您指定的顺序相同 . 完成此操作后,您可以单击每个面板中的每个控件以在给定面板内设置控件的相对Tab键顺序 .
尝试使用Visual Studio设计器中的“视图 - 选项卡顺序”,然后按所需顺序单击每个容器和控件 . 父容器(面板)的选项卡索引很重要 .