更多控件具有相同的tabindex时的Tab顺序?

Posted

技术标签:

【中文标题】更多控件具有相同的tabindex时的Tab顺序?【英文标题】:Tab order when more controls have the same tabindex? 【发布时间】:2022-01-12 03:05:22 【问题描述】:

当多个控件具有相同的tabindex 属性时,是什么决定了 Tab 键的顺序?

例如,在将 texbox 添加到空表单后,texbox 的 tabindex 为 0。通过复制 texbox(Ctrl + 鼠标拖动),新文本框的 tabindex 也为 0。然后我添加了一个按钮,它的tabindex 是 1。

运行程序后,焦点位于第二个文本框。

然后我将按钮的 tabindex 更改为 0,因此之后所有控件的 tabindex = 0 并且在运行程序后焦点位于最后添加的按钮上。

这是否意味着在多个具有相同tabindex 属性的控件的情况下,Tab 顺序将是与添加控件的顺序相反 到表单?似乎共享相同tabindex 的控件的选项卡顺序与它们在Form.Designer.cs 文件中的出现顺序正好相反

或者当它们共享相同的tabindex时,按钮控件总是优先于文本框控件?

这是否记录在某处?

【问题讨论】:

如果 Metro Smurf 的回答对您有帮助,您可以点击“✔”将回复标记为已接受答案。它还将帮助其他人解决类似的问题。 【参考方案1】:

来自 MSDN Control.TabIndex Property

标签索引可以由任何大于或等于的有效整数组成 零,较低的数字在制表符顺序中较早。如果不止一个 同一父控件上的控件具有相同的选项卡索引,z 顺序 控件的数量决定了循环通过控件的顺序。

还有一点细微差别:

对于要包含在 Tab 键顺序中的控件,它的 TabStop 属性 必须设置为 true。

因此,由于 z-index 值,您会看到具有相同 TabIndex 值选项卡的控件与代码隐藏文件的顺序相反。

【讨论】:

您是否知道如果控件具有相同的 z-index 会发生什么? @Chupo_cro - 你总是可以尝试不同的标签顺序和 z-index 看看会发生什么:)

以上是关于更多控件具有相同的tabindex时的Tab顺序?的主要内容,如果未能解决你的问题,请参考以下文章

C# Tab键TabIndex使用问题(顺序,不起作用,跳过某个元素等问题)

Winform Enter键实现Tab键聚焦

VB 如何用上下键切换控件焦点

2017-04-25winform公共控件菜单和工具栏

tabindex属性用法

2017-4-26 winform tab和无边框窗体制作