Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Anmärkning
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
Controlsav 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 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); }
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
Removeför att ta bort den önskade kontrollen från panelensControlssamling.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 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(); } }
Se även
.NET Desktop feedback