2012-12-13 31 views
-1

我知道如何定義一個int [i],byte [i]等數組。喜歡它,因爲我可以使用for循環來運行它們。現在我正在考慮用像文本框,按鈕,標籤等奇特對象來做同樣的事情......我想知道這是否可能。C#如何在數組中定義花哨的對象(文本框,按鈕等)

如果是這樣,該怎麼辦?該對象的名稱將如何?像mytextbox [1],mylabel [2]?

+0

它將是一個'object []'或者一個由所有成員共享的其他更多派生接口的數組,但是,如果你喜歡數組,你一定會喜歡'List ',不是嗎? – Jodrell

+0

你可以製作一個清單 Amitd

回答

8

完全正確。

TextBox[] myTextBoxes = new TextBox[10]; 

或者,您可以創建Control類型的數組,並與任何一種控制的使用它:

Control[] myControls = new Control[10]; 
myControls[0] = new TextBox(); 
myControls[1] = new DropDownList(); 

爲了將這些添加到您的表格,你必須每增加動態形式的Controls屬性。

foreach(Control control in myControls) 
{ 
    Controls.Add(control); 
} 

你必須設置每個控件的屬性在後面的代碼爲好,如IdText等,還有HeightWidthTopLeft。這就是你將每個控件放置在你的表單上的方式。

+0

好的,那麼在定義它們之後,我如何在設計窗口中將它們帶到我的表單中?我的意思是,他們每個人都從TextBox [0]到TextBox [10]。 – CaTx

+0

我編輯我的答案與如何使用控件數組的示例。 –

+0

謝謝。我會嘗試。 – CaTx

1

您可以製作一個可包含所有這些元素的通用列表,但請記住,如果您不知道這些元素是什麼類型,那麼以後將無法訪問其屬性。

所以,如果你這樣做標籤的數組(或列表,所以你不定義大小):

List<Label> labelList = new List<Label>(); 

那麼它是OK的,因爲你可以通過它們用循環用於/的foreach和無論你需要做什麼。

如果你想建立一個非同質的項目列表,把標籤,文本框和其他項都放進去,那麼記住你必須付出額外的努力來確定在你實際存在之前列表[i]是什麼與那個對象一起工作。

相關問題