动态获取控件(按钮)的名称

时间:2013-03-07 09:05:22

标签: vb.net winforms controls

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

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

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

5 个答案:

答案 0 :(得分:4)

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

您可以使用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

答案 1 :(得分:1)

您必须iterate完成此parent container的{​​{1}}。

假设您在名为buttons的{​​{1}}内举行此controls,那么您必须这样做:

panel

答案 2 :(得分:1)

简单地:

For i As Integer = 1 To 10
    Me.Controls("button" & i.ToString("00")).Text = "blah"
Next

答案 3 :(得分:0)

您可以尝试使用WebControl中的方法FindControl

For x=1 to 10
    FindControl("button" & if(x < 10, "0" & x, x) = "blah" 'from database...or something
next 

编辑:我主要使用C#,而不是VB,因此可能需要进行一些更改。但是,我认为这种方法是一样的。

答案 4 :(得分:-2)

zeroyevi cubosoft.cl - DevExpress - la clave esta(bar.button.item)en Me.RibbonControl.Items(“NAME_BUTTON”)。Enabled = True or false

Private Sub GetSearchPerfilModulosBotones(ByVal _id_perfil As String)

    Dim dt As New DataTable
    Dim _act_btns As Boolean

    Dim _name_btns As String
    Dim _name_module As String = Me.Name.ToString()
    Try

        Dim _ControlDatosSistema As New ControlDatosSistema()
        With _ControlDatosSistema
            dt = .GetSearchPerfilModulosBotones(_id_perfil, _name_module )'SQL QUERY


          If (dt.Rows.Count >= 1) Then
                For Each row As DataRow In dt.Rows

                    _act_btns = row("ACT_BTNS") 'BOTONES PERFIL True or False
                    _name_btns = row("NAME_BTNS").ToString()'NOMBRE BOTONES TABLA
                    Me.RibbonControl.Items(_name_btns ).Enabled = _act_btns 
                Next
            End If



        End With
        _ControlDatosSistema = Nothing
        dt.Dispose()



    Catch ex As Exception

    End Try
End Sub