Dela via


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

  1. Skapa en instans av kontrollen som ska läggas till.

  2. Ange egenskaper för den nya kontrollen.

  3. 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

  1. Ta bort händelsehanteraren från händelsen. I Visual Basic använder du nyckelordet RemoveHandler-instruktionen. i C# använder du operatorn -=.

  2. Använd metoden Remove för att ta bort den önskade kontrollen från panelens Controls samling.

  3. 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