Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Běžné úlohy při vývoji aplikací přidávají ovládací prvky do libovolného ovládacího prvku kontejneru a odebírají je z formulářů (například ovládací prvek Panel nebo GroupBox nebo dokonce samotný formulář). V době návrhu lze ovládací prvky přetáhnout přímo na panel nebo skupinové pole. Tyto ovládací prvky v době běhu udržují kolekci Controls, která sleduje, jaké ovládací prvky jsou na nich umístěné.
Poznámka:
Následující příklad kódu se vztahuje na jakýkoli ovládací prvek, který udržuje kolekci ovládacích prvků v něm.
Programové přidání ovládacího prvku do kolekce
Vytvořte instanci ovládacího prvku, který se má přidat.
Nastavte vlastnosti nového ovládacího prvku.
Přidejte ovládací prvek do
Controlskolekce nadřazeného ovládacího prvku.Následující příklad kódu ukazuje, jak vytvořit instanci Button ovládacího prvku. Vyžaduje formulář s ovládacím prvkem Panel a že metoda pro zpracování událostí pro tlačítko, které se vytváří
NewPanelButton_Clickjiž existuje.Public NewPanelButton As New Button() Public Sub AddNewControl() ' The Add method will accept as a parameter any object that derives ' from the Control class. In this case, it is a Button control. Panel1.Controls.Add(NewPanelButton) ' The event handler indicated for the Click event in the code ' below is used as an example. Substite the appropriate event ' handler for your application. AddHandler NewPanelButton.Click, AddressOf NewPanelButton_Click End Subpublic Button newPanelButton = new Button(); public void addNewControl() { // The Add method will accept as a parameter any object that derives // from the Control class. In this case, it is a Button control. panel1.Controls.Add(newPanelButton); // The event handler indicated for the Click event in the code // below is used as an example. Substitute the appropriate event // handler for your application. this.newPanelButton.Click += new System.EventHandler(this. NewPanelButton_Click); }
Programové odebrání ovládacích prvků z kolekce
Odeberte obslužnou rutinu z události. V jazyce Visual Basic použijte klíčové slovo RemoveHandler Statement; v jazyce C# použijte operátor -=.
Pomocí metody
Removeodstraňte požadovaný ovládací prvek z kolekceControlspanelu.Voláním metody Dispose uvolněte všechny prostředky používané ovládacím prvku.
Public Sub RemoveControl() ' NOTE: The code below uses the instance of ' the button (NewPanelButton) from the previous example. If Panel1.Controls.Contains(NewPanelButton) Then RemoveHandler NewPanelButton.Click, AddressOf _ NewPanelButton_Click Panel1.Controls.Remove(NewPanelButton) NewPanelButton.Dispose() End If End Subprivate void removeControl(object sender, System.EventArgs e) { // NOTE: The code below uses the instance of // the button (newPanelButton) from the previous example. if(panel1.Controls.Contains(newPanelButton)) { this.newPanelButton.Click -= new System.EventHandler(this. NewPanelButton_Click); panel1.Controls.Remove(newPanelButton); newPanelButton.Dispose(); } }
Viz také
.NET Desktop feedback