我有10個按鈕,即button01
,button02
... button10
。我想要的是如何操縱它。動態獲取控件的名稱(按鈕)
For x=1 to 10
button(x).text = "blah" 'from database...or something
next
我需要這樣做,因爲我有10個按鈕或更多,我想通過初始化操作它。所以我不會一個一個地手動。我不知道該怎麼做。我在.NET中還是個新手。
我有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
你可以嘗試使用方法FindControl這樣從WebControl的:
For x=1 to 10
FindControl("button" & if(x < 10, "0" & x, x) = "blah" 'from database...or something
next
編輯:我主要使用C#,VB沒有,所以它可能需要一些改變。但是,我相信這種做法是一樣的。
我假設OP是要求Winforms,在WinForms中沒有'FindControl'。 – 2013-03-07 09:19:43
您可以通過此buttons
的parent container
有iterate
。
說你拿着這個controls
內panel
稱爲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
簡單:
For i As Integer = 1 To 10
Me.Controls("button" & i.ToString("00")).Text = "blah"
Next
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
請包括對此的解釋。 – 2015-07-29 02:16:20
這是非常好的,我用你的最後一個選項。可能是我需要的。歡呼聲 – Ikong 2013-03-11 01:29:56