2010-07-08 76 views
1

如何在父控件添加控件 我使用C#Windows應用程序C#用戶控件

我有一個用戶控制,包括組框和複選框組框,控制被啓用或檢查的檢查屬性的基礎上禁用方框 現在在其他應用程序中使用此控件時 如何在組框中添加控件? ,以便它們可以啓用o在我的應用程序中禁用

+0

你能發表一些你到目前爲止的樣本嗎? – mwright 2010-07-08 16:38:57

+0

OK 這裏是我的代碼 在用戶控件我有一個組框和一個複選框 然後我寫了下面的代碼 的foreach控制CTRL this.groupbox1.controls { 如果(CTRL!= this.checkbox1) { ctrl.enabled = this.checkbox1.checked; } } 這是我的控制現在我想用在其他應用 我想這個控件知道我可以添加控件(面板,groupboxes)這個已經取得控制 – MehaJain 2010-07-08 16:57:11

+0

如果你想簡單的添加額外的控制到用戶控件本身,創建一個公共方法(類似於我的答案的編輯部分),它將控件添加到用戶控件(例如:this.Controls.Add)而不是容器。然而,意識到如果沒有某種使用它們的屬性的代碼,添加的控件將很難被使用,並反過來使它成爲調用代碼的屬性或方法。 – JYelton 2010-07-08 17:02:49

回答

1

我最終創建了一個用戶控件,其中我在複選框中添加了一個組框。 因此,基於複選框啓用和禁用組框。

3

是否想通過代碼(以編程方式)或使用設計器添加控件?

如果你想一個控件添加到組框,面板或其他容器,你首先創建控件:

Label myLabel = new Label(); 
myLabel.Name = "Name"; 
myLabel.Text = "Example"; 
myLabel.Location = new Point(10, 10); 

然後,用容器的Controls屬性將其添加到容器中,通過添加方法:

myGroupBox.Controls.Add(myLabel); 

最後,您可以使用複選框的狀態來啓用/禁用整個容器(及其所有子控件)。您可能需要使用一個布爾值的地方,但是這是基本的想法:

在CheckChanged事件的複選框,這樣做:

myGroupBox.Enabled = myCheckBox.Checked; 

或者逆,這取決於你如何想啓用狀態。

編輯:

從您的評論,這聽起來像你想更多的控件添加到設計時間後,現有用戶的控制。您需要使用公共方法提供該功能。

public void AddControl(Control controlToAdd) 
{ 
    myGroupBox.Controls.Add(controlToAdd); 
} 

基本上暴露用戶控件容器的Controls.Add到與用戶控件交互的代碼。

我希望這是有幫助的。

編輯2:

以下是您所發佈註釋代碼:

foreach(Control ctrl in this.groupbox1.Controls) 
{ 
    if (ctrl != this.checkbox1) 
    { 
     ctrl.Enabled = this.checkbox1.Checked; 
    } 
} 

這遍歷所有控件,並啓用或禁用所有的人除了checkbox1基於checkbox1的檢查州。

首先,如果checkbox1不是groupbox1中的子控件,則不需要if語句來確保當前控件不是 checkbox1。它永遠不會,因爲foreach只是迭代groupbox1的子控件。只要checkbox1在groupbox1之外,它就會在迭代中被忽略。

其次,如果您只是啓用或禁用整個groupbox,則更快更容易維護。它內的所有控件都將繼承啓用/禁用狀態。使用你的控制名稱的代碼將是:

groupbox1.Enabled = checkbox1.Checked; 

我希望我正確理解你的問題。

+0

感謝您的回覆 以及我知道如何添加控件 ,我實際上做了一個usercontrol有一個groupbox和一個複選框 現在我想在我的應用程序中使用這個usercontrol 和那裏我想要在我的usercontrol中添加控件 是否真的有可能? – MehaJain 2010-07-08 16:51:52

+0

聽起來好像您想在設計時間之後(即以編程方式)將控件添加到用戶控件中。您需要在用戶控件中提供一種機制,允許您爲其添加其他控件。我將用一個例子編輯我的答案。 – JYelton 2010-07-08 16:55:06

+0

你是否明白了 bt你能不能告訴我該怎麼辦 我是一個新程序員 我該怎麼辦? – MehaJain 2010-07-08 17:00:06