我知道如何定義一個int [i],byte [i]等數組。喜歡它,因爲我可以使用for循環來運行它們。現在我正在考慮用像文本框,按鈕,標籤等奇特對象來做同樣的事情......我想知道這是否可能。C#如何在數組中定義花哨的對象(文本框,按鈕等)
如果是這樣,該怎麼辦?該對象的名稱將如何?像mytextbox [1],mylabel [2]?
我知道如何定義一個int [i],byte [i]等數組。喜歡它,因爲我可以使用for循環來運行它們。現在我正在考慮用像文本框,按鈕,標籤等奇特對象來做同樣的事情......我想知道這是否可能。C#如何在數組中定義花哨的對象(文本框,按鈕等)
如果是這樣,該怎麼辦?該對象的名稱將如何?像mytextbox [1],mylabel [2]?
完全正確。
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);
}
你必須設置每個控件的屬性在後面的代碼爲好,如Id
的Text
等,還有Height
,Width
,Top
和Left
。這就是你將每個控件放置在你的表單上的方式。
您可以製作一個可包含所有這些元素的通用列表,但請記住,如果您不知道這些元素是什麼類型,那麼以後將無法訪問其屬性。
所以,如果你這樣做標籤的數組(或列表,所以你不定義大小):
List<Label> labelList = new List<Label>();
那麼它是OK的,因爲你可以通過它們用循環用於/的foreach和無論你需要做什麼。
如果你想建立一個非同質的項目列表,把標籤,文本框和其他項都放進去,那麼記住你必須付出額外的努力來確定在你實際存在之前列表[i]是什麼與那個對象一起工作。
它將是一個'object []'或者一個由所有成員共享的其他更多派生接口的數組,但是,如果你喜歡數組,你一定會喜歡'List',不是嗎? –
Jodrell
你可以製作一個清單 –
Amitd