Vb.net 从选项卡索引中获取按钮?
假设我在一个面板里有50个按钮。在设计期间,每个按钮都会自动分配一个选项卡索引编号。 现在我想得到的是一个TabIndex为37的特定按钮,并将其输入一个函数Vb.net 从选项卡索引中获取按钮?,vb.net,variables,button,names,Vb.net,Variables,Button,Names,假设我在一个面板里有50个按钮。在设计期间,每个按钮都会自动分配一个选项卡索引编号。 现在我想得到的是一个TabIndex为37的特定按钮,并将其输入一个函数PerformButtonFunction(button),该函数需要一个按钮作为其参数 大概是这样的: PerformButtonFunction(Button whose TabIndex is 37) 那么它是如何做到的呢 请注意:索引不必每次都是37。该指数是通过一些计算得出的。此外,索引不是按钮名称的一部分。我的意思是,索引为3
PerformButtonFunction(button)
,该函数需要一个按钮作为其参数
大概是这样的:
PerformButtonFunction(Button whose TabIndex is 37)
那么它是如何做到的呢
请注意:索引不必每次都是37。该指数是通过一些计算得出的。此外,索引不是按钮名称的一部分。我的意思是,索引为37的按钮没有被命名为“Button37”
可以在动态创建按钮时设置按钮名称。之后
你可以用那个名字来称呼巴顿
可以在动态创建按钮时设置按钮名称。之后
你可以用那个名字来称呼巴顿
Dim btn=Me.Controls.OfType(Of Button)().FirstOrDefault(Function(b)b.TabIndex=37)
第一部分允许有多个按钮
,其中选项卡索引
,而OrDefault部分允许没有按钮。
显然,您可以使用变量来代替该代码中的文本整数。Dim btn=Me.Controls.OfType(of Button)().FirstOrDefault(函数(b)b.TabIndex=37)
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
第一部分允许有多个按钮
,其中选项卡索引
,而OrDefault部分允许没有按钮。
显然,您可以使用一个变量来代替该代码中的literalInteger
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
另一个可能的解决方案是使用@jmchilhinney已经建议的TabIndex。Me.Controls(“Button37”)
?@GSerg具有索引37的按钮不被命名为“Button37”,并且索引不必总是37。我已经编辑了这个问题,请仔细阅读。Me.Controls(“Button37”)
?@GSerg具有索引37的按钮不被命名为“Button37”,索引也不一定总是37。我已经编辑了这个问题,请过目一下。