2011-02-14 12 views

Respuesta

5

En lugar de la matriz, debe usar una lista. Creo que cuando la creación se hace algo como esto:

List<button> buttons = new List<button>(); 
for(int i = 0; i < 20; i++){ 
    Button b = new Button(); 
    ... 
    this.Controls.Add(button); 
    buttons.Add(button); 
} 

Luego de quitar cualquier botón de la aplicación de nuevo, basta con hacer:

this.Controls.Remove(buttons[i]); 
buttons.RemoveAt(i); 

Con esta configuración, para eliminar los últimos 15 botones, trato lo siguiente:

for(int i = 19; i > 4; i--){ 
    this.Controls.Remove(buttons[i]); 
    buttons.RemoveAt(i); 

Recuerde dejar que el inicio del bucle en el artículo 20, y trabajar hacia abajo, porque si se elimina un elemento dentro de una lista, que significa que todos los elementos con un índice superior obtendrán º Índice EIR cambió por 1.

0

Para la eliminación de los botones, hay que sacarlo de la colección de controles.

uso this.Contols.Remove(<buttonControl>);

Esto es similar a cómo se agrega botones en tiempo de ejecución. En lugar de .add, usa .remove.

Cuestiones relacionadas