Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2009, 12:32
Isdiar
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Eliminar controles que han sido creados en tiempo de ejecución

Buenas tardes amigos,

tengo un formulario en el que cuando pulso un botón creo varios controles:
Código:
For i = 0 To usuarGrup.Count - 1                                ' Por cada Grupo del Usuario

                Dim label As New Label                                          ' Declaro un nuevo Label
                label.Name = "Label_Grupos" + i.ToString                        ' Le asigno un nombre
                label.Size = New Size(36, 13)                                   ' Le doy un tamaño
                label.Text = "Grupo"                                            ' Le asigno un texto
                label.Location = New Point(arrPosicX(i) - 42, arrPosicY(i) + 3) ' Lo posiciono
                Dim combo As New ComboBox                                       ' Declaro un nuevo Combo
                combo.DropDownStyle = ComboBoxStyle.DropDownList                ' No permito escritura en Combobox
                combo.Name = "ComboBox_Grupos" + i.ToString                     ' Le asigno un nombre
                combo.Size = New Size(250, 21)                                  ' Le doy un tamaño
                combo.Location = New Point(arrPosicX(i), arrPosicY(i))          ' Lo posiciono
                combo.TabIndex = i + 2                                          ' Le asigno el TabIndex
                combo.Enabled = tipoEnabled                                     ' Asigna TRUE o FALSE a Enabled (recibe por parámetro)
                combo.Items.Add("")                                             ' Añado elemento vacío
                For j = 0 To grupos.Count - 1                                   ' Por cada Grupo existente en la BD
                    If (UCase(Trim(grupos(j).NOMBRE_GR.ToString)) <> UCase("Temporal") Or _
                        (UCase(Trim(grupos(j).NOMBRE_GR.ToString)) = UCase("Temporal") And _
                            usuarGrup(i).COD_GR = codigo_gr_temporal)) Then
                        elemento = grupos(j).COD_GR                                 ' Obtengo el cod_gr
                        elemento = elemento + ". " + grupos(j).NOMBRE_GR            ' Anexo el nombre_gr
                        combo.Items.Add(elemento)                                   ' Añado el elemento al Combobox
                        If (usuarGrup(i).COD_GR = grupos(j).COD_GR) Then            ' SI usuario pertenece a dicho grupo
                            combo.SelectedItem = elemento                               ' Selecciono como default el grupo en el Combobox
                        End If
                        If (usuarGrup(i).COD_GR = codigo_gr_temporal) Then
                            Dim color As New Color
                            color = color.OrangeRed
                            combo.BackColor = color
                        End If
                    End If
                Next j

                Panel1.Controls.Add(label)                                          ' Añado el Label al formulario
                Panel1.Controls.Add(combo)                                          ' Añado el Combobox al formulario

            Next i


Y quiero pulsar otro botón distinto y que me elimine esos mismos controles, pero no sé cómo hacerlo.

He pensado en hacer lo siguiente:
Código:
For i = 0 To numComboboxGrupos - 1
            Dim label As New Label                                          ' Declaro un nuevo Label
            label.Name = "Label_Grupos" + i.ToString                        ' Le asigno un nombre
            Dim combo As New ComboBox                                       ' Declaro un nuevo Combo
            combo.Name = "ComboBox_Grupos" + i.ToString                     ' Le asigno un nombre
            Panel1.Controls.Remove(label)
            Panel1.Controls.Remove(combo)
        Next


Pero no funciona lógicamente... Sabéis hacerlo? Muchas gracias, un saludo amigos!