Anvisningar: Lägga till i eller ta bort från en samling kontroller vid körning
Vanliga uppgifter i programutveckling är att lägga till kontroller i och ta bort kontroller från alla containerkontroller i dina formulär (till exempel Panel eller GroupBox kontroll, eller till och med själva formuläret). När man designar kan kontroller dras direkt till en panel eller gruppruta. Vid körning underhåller dessa kontroller en Controls
samling, som håller reda på vilka kontroller som placeras på dem.
Notis
Följande kodexempel gäller för alla kontroller som upprätthåller en samling kontroller i den.
Lägga till en kontroll i en samling programmatiskt
Skapa en instans av kontrollen som ska läggas till.
Ange egenskaper för den nya kontrollen.
Lägg till kontrollen i kollektionen
Controls
av den överordnade kontrollen.Följande kodexempel visar hur du skapar en instans av Button-kontrollen. Det kräver ett formulär med en Panel kontroll och att händelsehanteringsmetoden för knappen som skapas,
NewPanelButton_Click
, redan finns.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 Sub
public 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); }
Ta bort kontroller från en samling programmatiskt
Ta bort händelsehanteraren från händelsen. I Visual Basic använder du nyckelordet RemoveHandler-instruktionen. i C# använder du operatorn -=.
Använd metoden
Remove
för att ta bort den önskade kontrollen från panelensControls
samling.Anropa metoden Dispose för att frigöra alla resurser som används av kontrollen.
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 Sub
private 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(); } }
Se även
.NET Desktop feedback