4

button01私は 10 個のボタン、つまりbutton02...を持っています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

もう 1 つの方法は、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
于 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 

編集:私は主にVBではなくC#を使用しているため、変更が必要になる場合があります。しかし、アプローチは私が信じているのと同じです。

于 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 または 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 に答える