问题标签 [tab-ordering]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WinForms TabOrder 工具:损坏或只是令人困惑?
我有一个带有一堆面板的表单,以及组框内的一些面板。在 Vs2005 中使用 TabOrder 工具时,容器外的控件被赋予整数(0),面板内的控件被赋予小数(72.0),组框内的面板内的控件被赋予三部分的值(73.73.0)。不幸的是,生成的标签顺序与我单击控件的顺序无关。
这个工具根本不支持嵌套容器吗?难道我做错了什么?当我单击时可能按住 Shift- 或 Ctrl- (我已经尝试过这些但没有成功)?
我是否将被迫为我的所有控件手动输入由三部分组成的标签顺序?那将是一个无赖。
java - 在网页上切换 Java 小程序
我有一个 Java 小程序,其中包含几个嵌入在网页中的可聚焦元素。
是否可以使小程序中的元素成为页面其余部分的逻辑选项卡顺序的一部分?
澄清一下:我想使用Tab从小程序外的元素移动到小程序的第一个元素,然后使用Shift+Tab移回小程序外的元素。同样,我想使用Tab从小程序的最后一个元素移动到网页的下一个元素并使用Shift+Tab向后移动。
.net - TabStop/TabIndex 在 TableLayoutPanel 中的行为不规律
我有一个相当复杂TableLayoutPanel
的控件,上面有近 40 个控件。有些是只读的,有些不需要用户注意,除非在非常特殊的情况下(然后可以用鼠标访问)。所以我想设置TabStop=false
这些控件,并以自上而下的从左到右的顺序排列其余的。
但是对于内部的任何控件,TableLayoutPanel
我都无法更改TabStop
属性。也就是说,我可以,但它会False
在下一次重建时重置。因此,所有控件都可以通过 TAB 键访问,即使是我不想访问的控件。
这里发生了什么?
环境:Windows 7 企业版;VS2008;.NET 3.5 SP1;所有控件都直接放在 上TableLayouPanel
,没有中间容器。
添加了更多信息: Robert Kerr 报告说他无法复制。我忘了提到我在 TableLayoutPanel 上专门使用了 Telerik Winforms RadControls。按钮/复选框似乎也可以正常工作,而文本框、组合框和 spinedits 则不行。
xcode - 界面构建器中的标签顺序?
也许时间已经晚了,但我找不到可以在哪里设置界面查看器对话框的整体选项卡顺序,就像我可以使用 Visual Studio 一样。
我错过了什么吗?标签顺序全是歪的。Command-R 来模拟显示它。
vb.net - VB.NET 限制制表符排序?
我继承了一个 frankenstein VB6 "Converted" to VB.NET winform 应用程序。该应用程序中有大量字段,用户理所当然地抱怨标签顺序已关闭(在某个点之后它开始在整个表单中跳跃)。
确定标签顺序中的某些内容已关闭,我进入并打开“视图”>“标签顺序”,它看起来不错。
为了确保我再次新鲜地浏览了表单,当我处于标签顺序视图时一切都很好,但是当应用程序运行时它仍然开始像以前一样在同一区域跳跃?!有没有其他人遇到过这种情况,如果遇到了,您是如何解决的?
[编辑]:这些输入表单都位于选项卡控件中的单独选项卡上,这可能会使情况更加混乱。
apache-flex - 如何在 Flex 中更改制表符顺序(Actionscript,SDK 3.5)
flex 选项卡的顺序对于可用性(显而易见)和可访问性(它定义了屏幕阅读器的阅读顺序)都很重要。然而,Flex 3.5 似乎几乎没有支持影响它以适应更复杂的应用程序。
据我目前所知:
选项卡排序由 mx.managers.FocusManager 计算,它负责整个应用程序的一个“选项卡循环”(即,不是每个容器都有一个,而是整个应用程序都有一个)。嵌入的 .swf 文件和弹出窗口是个例外,它们都有自己的 FocusManager。
FocusManager 内部的逻辑被标记为私有,并且类在 Application.initialize() 中实例化,因此很难改变行为(缺少重写部分 SDK,可能会造成许可证问题)
制表符排序查找每个组件的 tabIndex (int) 属性。所有具有此属性集 (>0) 的组件都按其值排序,否则使用视觉层次结构(使用容器嵌套和容器内的子顺序)。
所有没有 tabIndex 的组件都被排序在设置它的组件之后(在内部,“tabIndex not set”映射到“tabIndex = int.MAX_VALUE)
具有相同 tabIndex 的两个组件按视觉层次结构排序。
这意味着您可以使用视觉层次结构的自动排序(主要是您想要的),或者您可以直接使用指定 tabIndexes - 但是如果您这样做,您会完全搞砸自动排序。如果您使用自定义组件并想要更改其中的选项卡顺序,这尤其糟糕:一旦您这样做,您就破坏了使用您的组件的所有屏幕的选项卡顺序。此外,您不能只在最高级别的 mxml 文件上设置选项卡顺序,因为您通常无权访问您使用的组件的内部工作。
例子:
accVerticalStuff.mxml
应用程序.mxml
预期结果:标签顺序将首先是左侧的三个垂直项目,然后是右侧的三个垂直项目,即按容器分组。TopLevelElement 是 Tab 键顺序中的第一个。(如果没有指定 tabIndex,它完全以这种方式工作,但是我们无法将 tabIndex 实际更改为例如切换一和三,无论出于何种原因我们可能想要这样做)
实际结果: tab 排序是水平的,即在两个输入表单之间跳转。TopLevelElement(未指定 tabIndex)在 Tab 键顺序中位于最后。
更改容器的嵌套在模块化项目中不起作用,更改子项的顺序会影响它们的显示位置(而使用 Canvas 容器会丢失 AutoLayout)。
有没有办法(可能很复杂,但最好不要重写 SDK)来指定单个组件的制表符顺序,而不依赖于其他组件?
如果一切都失败了,升级到 Flex4 是否有助于解决这个问题?
c# - (在 tabcontrol 上)通过控件自动切换 TabControl.tabs 的有效方式
我已经尝试编辑它以区分 tabControl 上的“选项卡”和使用 Tab 键通过控件的“选项卡”,但我只是要通电并希望含义清楚......
我有一个带有选项卡控件界面的 ac# 项目。3 个标签页(个人信息、联系人详细信息、附加说明)和相关控件包含在每个标签中。
我们的大多数用户发现仅使用键盘导航界面更容易(例如键盘快捷键和导航控件的选项卡)。我已经包含了各种快捷键组合的键盘监听器。例如,PageUp 和 PageDown 将允许用户翻阅各个选项卡。
然而,这些用户在输入信息时遵循相同的模式:一旦他们通过 PersonalInformation 选项卡的控件(根据需要填充)并到达选项卡上的最后一个控件,他们希望“保持选项卡”。如:当最后一个控件聚焦于 TabControl.Page1 时,用户按下 Tab 键会将焦点移动到 TabControl.Page2 上的第一个控件。当最后一个控件聚焦于 TabControl.Page2 时,用户按下 Tab 键会将焦点移至 TabControl.Page3。
通过这种方式,信息被分组并包含在一起,用户可以简单地继续键入和 Tab 键来输入表单上的所有信息,而无需使用键盘。
所以真正的问题是有效地做到这一点:我不能简单地处理最后一个控件的 OnLeave:用户(在最后一个控件上)选择较早的控件(甚至 shift-Tab)也会触发事件。
另一个问题是维护:如果维护者忘记/不知道这个“将焦点移到下一个选项卡”功能,在选项卡底部添加另一个控件可能会导致整个事情失败。也许将最后一个控件添加到表单中?
wpf - 带有自定义控件的WPF选项卡顺序?
我有一个 WPF 页面,其中包含几个带有选项卡顺序集的开箱即用控件。
我有一个自定义控件(NumericSpinner),其中包含:边框/网格/文本框/2 重复按钮(上/下)。
两个问题:
1)当我在自定义选择器控件的文本框中时,我无法将其跳出到页面上的其他控件。但是,单击向上/向下箭头之一后,我可以切换到其他控件。
2)我无法按顺序进入自定义控件的文本框。只有在我浏览了所有控件之后,光标才会落在文本框中(并且无法退出)。
语境:
自定义控件的一部分:
自定义控件由 xaml 和代码隐藏文件组成。
包含所有控件的父 xaml 页面是动态加载的,并且不包含任何代码隐藏。
在自定义控件的构造函数中,我将以下内容设置为测试:
我第四次制表时,我实际上将光标移到了文本字段中,但是我无法跳出它。
考虑到这一点,第一步是创建一个控件参数,我可以传递一个选项卡顺序编号,该编号将在控件的代码隐藏中设置。
我创建了一个 CustomTabIndex 属性:
在 xaml 中,当我尝试设置 CustomTabIndex="3" 时,我收到错误消息:
在“NumericSpinner”类型中找不到属性“CustomTabIndex”。
一些帮助将不胜感激。
.net - WPF 托管 WinForm,选项卡导航问题
WindowsFormsHost
在 a和选项卡导航中托管 WinForms 表单时遇到问题。为了解决我做了这个简单的例子:
- 创建 WPF
Window
(应用程序的起点) Form
创建了带有两个TextBox
的WinForms- WPF 窗口:添加
WindowsFormsHost
到其中 - WPF 窗口:添加了
OnLoaded
处理程序 - WPF 窗口:添加
Textbox
位于WindowsFormsHost
在OnLoaded
我得到的处理程序中:
当我现在运行应用程序时:
- 没有重点(好的)
- 我点击第一个
TextBox
,WindowsFormsHost
它得到焦点(好的) - 我按 Tab,焦点转到(确定)
TextBox
中的第二个WindowsFormsHost
- 我再次按 Tab,焦点回到第
TextBox
一个WindowsFormsHost
(不好;应该离开WindowsFormsHost
并将焦点放在 WPF 窗口底部的文本框) - 我单击 wpf 中的文本框(位于 之后和之下
WindowsFormsHost
),它获得焦点(好的) - 我按下制表符,焦点转到第一个文本框
WindowsFormsHost
- 因为它应该在结束后开始。所以这也可以 - 我再次单击 wpf 文本框并按 shift+tab,焦点转到
WindowsFormsHost
(确定)中的第二个文本框 - 我按 Tab,焦点转到第一个文本框
WindowsFormsHost
(转到 WFH 开头)(不好)
如果我只有一种类型的控件,如何使焦点表现得像?在这种情况下,表示 WFH-1st-Textbox、WFH-2nd-Textbox、WPF-Textbox 的 Tab 键顺序。
c# - WPF选项卡顺序工作错误
我在 WPF 中有一个观点,我一直在努力使标签顺序正确。我有三个文本框(我们称它们为 Text1、Text2 和 Text3)和两个自定义控件,每个控件上都有几个其他文本框和各种控件(我们称它们为 Custom1 和 Custom2)。
布局是这样的,标签流应该去 Text1、Text2、Custom1、Custom2、Text3。我已在每个控件上设置 TabIndex 属性以匹配此排序,并验证它们都设置为 IsTabStop。
问题是,实际的选项卡流程是 Text1、Text2、Text3,然后是 Custom1、Custom2,我不知道为什么。当它进入自定义控件时,它会正确地跨过它们中的每个控件,正如我所期望的那样。我只是想不通为什么它在进入第一个自定义控件之前进入第三个文本框。
我已经尝试了我能想到的一切,包括确保所有 xaml 元素都按 Tab 键顺序排列,但似乎没有任何帮助。
我怀疑它在关注任何自定义控件之前会检查其所有基本控件,但我没有想法。任何帮助都会很棒。
编辑: 这是我的 xaml: