Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las tareas comunes en el desarrollo de aplicaciones consisten en agregar y quitar controles de cualquier control de contenedor en los formularios (como el control Panel, el control GroupBox, o incluso el propio formulario). En tiempo de diseño, los controles se pueden arrastrar directamente a un panel o cuadro de grupo. En tiempo de ejecución, estos controles mantienen una colección, que hace un seguimiento de los controles que se colocan sobre ellos.
Nota:
El ejemplo de código siguiente se aplica a cualquier control que mantenga una colección de controles dentro de él.
Para agregar un control a una colección mediante programación
Cree una instancia del control que se va a agregar.
Establezca las propiedades del nuevo control.
Agregue el control a la
Controls
colección del control primario.En el ejemplo de código siguiente se muestra cómo crear una instancia del Button control. Requiere un formulario con un Panel control y que el método de control de eventos para el botón que se crea,
NewPanelButton_Click
, ya 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. Substitute the appropriate event // handler for your application. this.newPanelButton.Click += new System.EventHandler(this. NewPanelButton_Click); }
Para quitar controles de una colección mediante programación
Quite el controlador de eventos del evento. En Visual Basic, use la palabra clave RemoveHandler Statement ; en C#, use el operador -= .
Use el
Remove
método para eliminar el control deseado de la colección delControls
panel.Llame al Dispose método para liberar todos los recursos utilizados por el control.
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 también
.NET Desktop feedback