vb.net - 动态获取控件(按钮)的名称

标签 vb.net winforms controls

我有 10 个按钮,即 button01 , button02 ... button10 .我想要的是如何操纵它。

For x=1 to 10
  button(x).text = "blah" 'from database...or something
next 

我需要这样做,因为我有 10 个或更多按钮,我想通过初始化来操纵它。这样我就不用手动一一做了。我不知道该怎么做。我还是 .NET 的新手。

最佳答案

您不应该为了节省一些代码行而以这种容易出错的方式执行此操作。但如果你真的想要......

您可以使用 Panel或另一个容器控件,它对相关控件进行逻辑分组。然后使用 MyPanel.Controls.OfType(Of Button)()过滤并找到那里的所有按钮。

For Each btn As Button In MyPanel.Controls.OfType(Of Button)()
    btn.Text = "blah" 'from database...or something
Next

另一种方法是将它们全部放入数组或其他集合类型中,例如 List(Of Button)首先,然后循环它们:
Dim myButtons = {button1, button2, button3, button4, button5, button6}
For Each btn In myButtons
    btn.Text = "blah" 'from database...or something
Next

最后你可以使用 ControlCollection.Find 查找具有给定字符串名称的控件:
For i As Int32 = 1 To 10
    Dim btns = Me.Controls.Find("button" & i, True)
    If btns.Length > 0 Then
        btns(0).Text = "blah" 'from database...or something
    End If
Next

关于vb.net - 动态获取控件(按钮)的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266954/

相关文章:

c# - 如何将 "select"保留为下拉列表的 item[0]

c# - "Failed to load view state"动态加载用户控件时出错

c# - WPF - Databind动态控件类型

c# - 动态加载用户控件的订阅事件

asp.net - 在 ASP.NET 中打开/写入文本文件时出现问题

c# - 如何使用 ComboBox.ObjectCollection.Item() 属性

c# - 日期时间奇怪的行为

c# - 在多个数组列表中,我想重命名重复值

vb.net - 数字签名安装盾安装程序

c# - mysql表转化为List