Поделиться через


Практическое руководство. Добавление или удаление элемента в коллекции элементов управления во время выполнения

Обновлен: Ноябрь 2007

Стандартными задачами при разработке приложения является задача добавления элементов управления в любой элемент управления контейнерами в формах и их удаление оттуда (например, в элемент управления Panel или GroupBox, либо в саму форму). В процессе разработки можно перетащить элементы управления непосредственно в панель или в группу. Во время выполнения эти элементы управления образуют коллекцию Controls, которая следит за размещаемыми элементами управления.

82785s1h.alert_note(ru-ru,VS.90).gifПримечание.

Приведенный ниже пример кода относится к любому элементу управления, который поддерживает коллекцию элементов управления.

Чтобы добавить элемент управления в коллекцию программными средствами, выполните следующие действия:

  1. Создайте экземпляр элемента управления, который требуется добавить.

  2. Задайте свойства нового элемента управления.

  3. Добавьте элемент управления к коллекции Controls родительского элемента управления.

    В приведенном ниже примере кода показано, как создать экземпляр элемента управления Button. Для этого необходима форма с элементом управления Panel и уже существующий метод обработки события NewPanelButton_Click для создаваемой кнопки.

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

Чтобы удалить элементы управления из коллекции программными средствами, выполните следующие действия:

  1. Из события удалите его обработчик. В Visual Basic используйте ключевое слово Оператор RemoveHandler; в Visual C# используйте Оператор -= (справочник по C#).

  2. Для удаления требуемого элемента управления из коллекции Controls панели используйте метод Remove.

  3. Вызовите метод Dispose для освобождения всех ресурсов, используемых элементом управления.

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

См. также

Ссылки

Panel

Другие ресурсы

Элемент управления Panel (Windows Forms)