4

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

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

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

4

5 回答 5

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)first 然后循环它们:

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
于 2013-03-07T09:17:56.583 回答
1

您必须遍历这些按钮的父容器。

假设您将这些控件放在一个名为 的面板PnlTest中,那么您必须这样做:

For Each xControls As Control In PnlTest.Controls

    If TypeOf xControls Is Button Then
        xControls.Text = "blah" 'from database...or something
    End If

Next
于 2013-03-07T09:19:50.173 回答
1

简单地:

For i As Integer = 1 To 10
    Me.Controls("button" & i.ToString("00")).Text = "blah"
Next
于 2013-03-07T10:40:24.657 回答
0

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

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

编辑:我主要使用 C#,而不是 VB,所以它可能需要一些改动。但是,我相信这种方法是一样的。

于 2013-03-07T09:15:21.497 回答
-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
于 2014-11-04T01:35:48.213 回答