【问题标题】:Why are some of my TabIndex values not being respected?为什么我的某些 TabIndex 值没有得到尊重?
【发布时间】:2017-08-31 10:55:18
【问题描述】:

我有一个表单,上面有几个控件(TextBox、CheckBox、ComboBox、NumericUpDown、DateTimePicker 和 Button)。

我已经为它们分配了所有的 TabIndex 值,从左到右,从上到下 (1..25)。

控件被组织成面板。顶部面板中的第一个控件首先获得焦点;从那里跳转到第一个面板就好了,但随后跳过第二个和第三个面板到第四个面板(跳过面板 2 和 3 上的 TabIndex 11..15 并转到面板 4 上的 TabIndex 16)。

所有控件的 TabStop 设置为 True;所有面板都将 TabStop 设置为 False。

为什么我在面板 2 和 3 上的控件被绕过了?

更新

TnTinMn 启发我去看看;我以前从未注意到这个选项。这是我的表单在该视图下的样子:

【问题讨论】:

    标签: c# winforms panel tabindex tabstop


    【解决方案1】:

    这看起来有些可怕,甚至有些古怪,但我必须为面板 TabIndex 提供递增值才能使其工作。也就是说,在我给第一个面板的 TabIndex 为 0、第二个面板为 1 等之后,它起作用了——即使它们都设置为 TabStop = false。

    在我看来,在事物的选项卡方案中根本考虑到一个不间断的位置。

    【讨论】:

    • 我可能误解了,但您所描述的是制表位和制表符的默认和正确行为。
    • 听起来您是通过属性网格分配标签顺序或通过用户代码设置。如果您通过设计器执行此操作(使用以下方式切换此模式:View Menu->Tab Order),您将看到 WInForm Tab 顺序的结构。对于每个容器控件,子控件 TabIndex 从一 (1) 开始。表单是主要容器,每个面板都是二级容器。在设计器中,反复点击显示的订单号进行更改。设计师不直观。
    • 有趣,田纳西州的铁皮人;我将在更新中添加我现在看到的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2021-10-18
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多