【问题标题】:Get Button from its TabIndex?从其 TabIndex 获取按钮?
【发布时间】:2020-09-25 08:44:49
【问题描述】:

假设我在一个面板中有 50 个按钮。在设计期间,这些按钮中的每一个都会自动分配一个 TabIndex 编号。 现在我想要得到的是 TabIndex 为 37 的特定按钮,并将其输入到需要一个按钮作为其参数的函数 PerformButtonFunction(Button)

类似这样的:

PerformButtonFunction(Button whose TabIndex is 37)

那它是怎么做到的呢?

请注意:索引不必每次都是 37。该指数是通过一些计算得到的。此外,索引不是按钮名称的一部分。我的意思是索引为 37 的按钮未命名为“Button37”。

【问题讨论】:

  • Me.Controls("Button37")?
  • @GSerg 索引为 37 的按钮未命名为“Button37”,并且索引不必一直为 37。我已经编辑了问题,请通过它。

标签: vb.net variables button names


【解决方案1】:
Dim btn = Me.Controls.OfType(Of Button)().FirstOrDefault(Function(b) b.TabIndex = 37)

First 部分允许有多个 ButtonsTabIndex,而 OrDefault 部分允许没有。 显然,您可以在该代码中使用变量代替文字 Integer

【讨论】:

    【解决方案2】:

    您可以在动态创建按钮时设置按钮名称。之后 你会得到那个名字的按钮。

    【讨论】:

      【解决方案3】:
      Dim index As Ineger = 1
      For Each btn In Me.Controls.OfType(Of Button)()
          '...
          If index = 37 Then    
          'Call Method here
          Exit For
          End If
      index = index + 1
      Next
      

      另一个可能的解决方案是使用 @jmcilhinney 已经建议的 TabIndex。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-25
        • 2018-07-14
        相关资源
        最近更新 更多