2011-10-19 59 views
1

我想在不知道類型的情況下將通用控件存儲在變量中。通過我需要訪問一些常見的屬性,如名稱,大小,位置...我只想存儲單選按鈕,標籤,圖片框......任何人都可以給我任何想法如何做到這一點?將控件存儲在變量中

+0

想通了設置控件的屬性。 – thewayman

回答

2

如果你在談論的WinForms,它們都是從控制得到,所以才作出這樣控件的列表:

public List<Control> MyControls; 
0

聲明該變量爲所有這些控件繼承的類型的列表,我相信這將是Control。然後,您可以訪問由Control類聲明的所有成員(包括屬性)。

var MyControls = new List<Control>(); 
MyControls.Add(MyPicBox); 
MyControls.Add(MyRadioButton); 
3

是的,你可以使用List<Control> myControls = new List<Control>(); 而控制是每一個WinForm控件的基類,你可以訪問諸如名稱屬性。

myControls.add(pictureBox1); 
myControls.add(textBox1); 

比你還落後演員邊做

if(myControls[0] is TextBox) 
    TextBox txtbx1 = (TextBox)(myControls[0]); 
0

的控制,你可以這樣做的:

List<Control> myControls = new List<Control>(); 
myControls.Add(new Label()); 
myControls.Add(new Button()); 
myControls.Add(new PictureBox()); 

foreach (var myControl in myControls) 
{ 
    myControl.Name = "New Name"; 
    myControl.Size = new Size(100, 200); 
    myControl.Location = new Point(100, 100); 
} 
0

聲明Base類類型的變量。由於基類類型變量可以保存子類的實例。

例如WPF中,你可以做List<System.Windows.Controls.Control>

爲Win窗體,你可以做List<System.Windows.Forms.Control>

2

控制從base class Control繼承,它擁有所有你提到的屬性。您可以鍵入您的控件集合以包含Control