【问题标题】:How do I disable a tab index on a control on a form?如何禁用表单控件上的选项卡索引?
【发布时间】:2012-09-04 21:08:27
【问题描述】:

我有一个带有 2 个按钮和 2 个标签的表单。

我想设置按钮 1 = tabIndex = 0,按钮 2 = tabIndex = 1,我不想将 tabIndex 设置为 2 个标签,这意味着如果用户按下选项卡,它将从按钮 1 转到按钮 2。

我该怎么做呢?

【问题讨论】:

    标签: c# tabindex


    【解决方案1】:

    只需将 Labels 的 TabStop 属性设置为 false 并将 Buttons 的 TabIndex 属性设置为您想要的任何值。您可以直接在设计器的“属性”窗口中进行操作。

    【讨论】:

    • 标签和其他控件,例如单选按钮没有 TabStop 属性...至少我没有在属性窗口中看到它。
    • TabStop 实际上与标签无关。 .NET 足够聪明,知道你永远不能 Tab 到一个:msdn.microsoft.com/en-us/library/1dsccs1d.aspx
    【解决方案2】:

    就我而言,我所有的标签都没有TabStop property

    我什至不能将 TabIndex 设置为 -1,因为它会显示 Property value not valid

    但我注意到,一旦我运行应用程序,无论我的 TabIndex 上所有标签的值如何,当我按下键盘上的 Tab 时,它都不会停止在任何标签上。

    原因是 Label 控件没有获得焦点。使 Label 控件获得焦点的唯一方法是调用 Label.Focus 方法。

    更多信息,你可以阅读这个论坛:MSDN Forum.

    【讨论】:

      【解决方案3】:
      button1.TabIndex = 0;
      button2.TabIndex = 1;
      

      标签默认将 TabStop 设置为 false,这意味着它们不应通过按 Tab 获得焦点。

      【讨论】:

        【解决方案4】:

        将标签的制表位属性设置为 false?

        http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tabstop.aspx

        否则,只需将标签的 tabindex 值设置为按钮之前的值。然后你可以使用加速键点击按钮。

        【讨论】:

        • 标签和其他控件,例如单选按钮没有 TabStop 属性...至少我没有在属性窗口中看到它。
        【解决方案5】:

        根据MSDN 上的文档,TabStop 属性与 Label 类无关,因此将 TabStop 设置为 true 无效。所以我将两个标签的标签索引设置为 0,按钮 1 将获得标签索引 1,按钮 2 将获得标签索引 2

        【讨论】:

          【解决方案6】:

          在设计环境中,您可以使用 Tab 标签。但是,当您运行 windows 窗体时,您不能 Tab 标签。所以你不需要 TabStop 或调整标签的 Tab Index。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-07-21
            相关资源
            最近更新 更多