2013-03-21 53 views
1

我有一些動態創建的按鈕(運行時生成的按鈕)以及一些動態創建的面板。我想做類似於下面的代碼的東西,但我知道這段代碼不起作用。通過動態創建的控件循環

For i = 1 to NumberOfButtons 
    button(i).top = panel(i).top 
next 

的按鈕名爲Button1,BUTTON2等,以及面板也稱爲PANEL1,是Panel2等 這一切正在用VB寫的快遞2008年

回答

0

當你生成你的按鈕和麪板,你需要將它們存儲到一個數組中。然後你可以通過你的代碼示例中的索引來訪問它。另一種選擇是通過Me.Controls("button1")和類似的方式來完成,但我會考慮這種不好的編碼。

+0

我就要在使用數組給一個嘗試,但至少那裏有另一種選擇。謝謝 – Jamie 2013-03-21 20:25:42

+0

@ user2179046:你不能出錯陣列。名稱的字符串常量很脆弱,以便長期維護。 – Neolisk 2013-03-21 20:26:57

+1

只需更新一下,就可以完全正常工作,並在此過程中學習更多關於數組的知識!我首先嚐試使用me.controls(「button1」)方法。然後嘗試使用數組,代碼變得非常簡單。謝謝您的幫助! – Jamie 2013-03-21 23:23:23

0
For i As Integer = 1 To theTopNumber 
    Me.Controls("button" & i.ToString).Top = Me.Controls("panel" & i.ToString).Top 
Next 
0

這不工作?

For Each btn As Button In Me.Controls 
    For Each pnl In Me.Controls 
     btn.Top = pnl.Top 
    Next 
Next 

請(如果您滿意)投票或標記爲答案,因爲我神祕的禁止沒有特別原因。這可能有助於重新啓用它:/

;)