Como: Adicionar ou remover de uma coleção de controles em time de execução

Tarefas comuns no desenvolvimento de aplicativos são adicionando controles para e remover controles de qualquer controle de contêiner em seus formulários (por exemplo, a Panel ou GroupBox controle, ou até mesmo o próprio formulário). Em time de design, controles podem ser arrastadas diretamente para uma painel ou caixa de agrupar.Em time de execução, esses controles mantêm um Controls coleção mantém controle sobre quais controles são colocados sobre eles.

Observação:

O exemplo de código a seguir aplica a qualquer controle que mantém um conjunto de controles dentro dele.

Para adicionar um controle a uma coleção por meio de programação

  1. Crie uma instância do controle a ser adicionado.

  2. conjunto propriedades do novo controle.

  3. Adicione o controle para o Controls coleção do controle pai.

    O exemplo de código a seguir mostra como criar uma instância do Button controle. Ele requer um formulário com um Panel controle e que o método de manipulação de eventos para o botão que está sendo criado, NewPanelButton_Click, já existe.

    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. Substite the appropriate event
       // handler for your application.
       this.newPanelButton.Click += new System.EventHandler(this. NewPanelButton_Click);
    }
    

Para remover controles de uma coleção por meio de programação

  1. Remova o manipulador de eventos do evento.In Visual Basic, use o Instrução RemoveHandler palavra-chave; em Visual C#, use o -= Operador (Referência C#).

  2. Use o Remove método para excluir o controle desejado do painel de Controls coleção.

  3. Chamar o Dispose método para liberar todos os recursos utilizados pelo controle.

    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();
       }
    }
    

Consulte também

Referência

Panel

Outros recursos

Controlar de painel (Windows Forms)