问题描述
假设我在一个面板中有50个按钮。在设计期间,将为这些按钮中的每个按钮自动分配一个TabIndex编号。
现在,我要获取的是TabIndex为37的特定按钮,并将其输入到需要按钮作为参数的函数PerformButtonFunction(Button)
中。
类似这样的东西:
PerformButtonFunction(Button whose TabIndex is 37)
那它怎么做呢?
请注意:索引不必每次都为37。该指数是通过一些计算获得的。同样,索引也不是按钮名称的一部分。我的意思是索引为37的按钮未命名为“ Button37”。
解决方法
Dim btn = Me.Controls.OfType(Of Button)().FirstOrDefault(Function(b) b.TabIndex = 37)
First 部分允许包含多个Buttons
的{{1}},而 OrDefault 部分不允许包含多个TabIndex
。
显然,您可以在该代码中使用变量代替文字Integer
。
,您可以在动态创建按钮时设置按钮名称。之后 你会得到那个名字的按钮。
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。