2012-02-01 33 views
3

我正在使用VB.Net。 我有一個13個按鈕的列表。這些按鈕的名稱通過3個不同變量的組合構造而成。動態構建按鈕

我需要禁用所有這些按鈕。我不想遍歷每個按鈕來禁用它們。我想動態地在一個循環中調用這些按鈕,然後禁用它們。像這樣的東西;

For Count = 1 To 13 
    PeriodRoomID = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(3) & Count) 
    PeriodRoomID.Enabled = False 
    PeriodRoomID.Backcolor = Color.Gray 
Next 

問題是,一旦創建變量PeriodRoomID,我不能將它作爲按鈕來尋址,因爲;

  • 這將意味着有兩個同名的按鈕。
  • PeriodRoomID是一個字符串,因此無法啓用,因爲這沒有意義。

我該如何解決這個問題?

+0

請不要只是將「[VB.Net]」放入您的標題中。這就是標籤的用途。 – 2012-02-01 04:53:50

回答

3

您可以嘗試Controls.Find方法。

dim cntrl() as Control 
For Count = 1 To 13 
    PeriodRoomID = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(3) & Count) 
    cntrl = Me.Controls.Find(PeriodRoomID,True) 
    cntrl(0).Enabled = False 
    cntrl(0).Backcolor = Color.Gray 
Next 
+0

我愛你! 工程就像一個魅力。 – 2012-02-02 02:08:27