【问题标题】:how to set false to tabstop value for a label in C#?如何将 false 设置为 C# 中标签的制表位值?
【发布时间】:2009-07-30 05:52:25
【问题描述】:

我有一个非常复杂的 UI,上面有数百个控件/标签。我想将每个标签的 tabstop 值设置为 false,如下所示

//在 MyForm.designer.cs 中

标记我的标签;

private void InitializeComponent()

{

this.myLabel = new Label();

this.myLabel.TabIndex = 1;

...

}

// 在 MyForm.cs 中

this.myLabel.TabStop = false;

但它不起作用。有什么方法可以设置 tabstop 值,以便 tab 不会在 myLabel 处停止??

【问题讨论】:

  • 我不相信标准 .NET 标签具有 TabStop 属性,因为它们本身永远不会获得焦点。这是标准的 .NET 标签吗?如果是,我认为问题出在其他地方,因为据我所知,标签无法停止标签。
  • 我发现虽然我们可以设置 TabSTop 的值,但是并没有用到 // // 摘要: // 获取或设置一个值,表示用户是否可以tab到System.Windows.Forms。标签。 // 这个属性没有被这个类使用。 // // 返回: // 此类不使用此属性。默认值为假。 [EditorBrowsable(EditorBrowsableState.Never)] 但不知何故,两个按钮之间的选项卡丢失了(选项卡索引为 0 和 2)。我在这两个按钮中有一个标签(tabindex 1)。
  • 标签确实有一个与之关联的 TabStop 布尔属性。在 VS2015 中,控件通常会获得焦点,需要禁用它,但是,TabStop 属性不会显示在设计器属性窗口中。

标签: c# visual-studio


【解决方案1】:

如果您使用的是标准 Label 控件,则它不应获得焦点。 Label 的行为是将焦点转发到可以获取它的第一个控件(例如 TextBox)。但是,请注意,如果您有可以具有输入焦点的控件(例如 TextBox),则一旦该控件获得焦点,无论 TabStop 属性如何,焦点都将保持在该控件上。

【讨论】:

  • 老问题,但是VS2015经常用TabStop = True创建标签
【解决方案2】:

尝试将 tabindex 设置为 -1,这通常会导致在我使用的大多数实现中跳过选项卡。

【讨论】:

  • 什么的大多数实现?
  • 大多数具有 tabindex 功能的控件实现。我认为这很明显。
  • 负一 (-1) 是选项卡索引的非法值。必须是大于 0 的整数。
  • @mohnston wow 老问题要添加评论,但我想我应该回复。使用 -1 将导致控件不包含在 Tab 键顺序中,因为值无效。所以是的,如果你希望它在 tab 顺序中使用,它必须大于 0,但如果不是,使用 -1 会产生预期的效果。
  • -1 仅在您使用设计器属性窗口时是非法值。如果您在运行时代码中,或手动编辑设计器文件,您可以提供 -1 作为 TabIndex 值。
【解决方案3】:

请试试这个:

Private Sub Label1_Enter(sender As Object, e As EventArgs) Handles Label1.Enter
        SendKeys.Send("{TAB}")
    End Sub

Private Sub Label2_Enter(sender As Object, e As EventArgs) Handles Label2.Enter
    SendKeys.Send("{TAB}")
End Sub

Private Sub Label3_Enter(sender As Object, e As EventArgs) Handles Label3.Enter
    SendKeys.Send("{TAB}")
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2015-03-13
    相关资源
    最近更新 更多