none
Habilitar varios textbox con el mismo checkbox o boton RRS feed

  • Pregunta

  • Hola, ante todo gracias a quienes puedan colaborarme

    Estoy trabajando con visual basic 2016 y tengo un checkbox que quiero que me habilite 9 texbox pero quisiera saber si hay una forma diferente a poner de uno en uno asi:

    textbox.enabled=true

    textbox2.enabled=true 

    ....y asi sucesivamente

    tambien de paso si me pueden dar un consejo con un problema casi similar, deseo que al deshabilitar el checkbox todos los texbox tengan el mismo texto por ejemplo "empy" pero de la misma forma quisiera saber si hay una forma de ponerles a todos al mismo tiempo y no tener que estar poniendo de uno en uno

    textbox1.text= "empy" 

    textbox2.text= "empy" 

    ....y asi sucesivamente

    Gracias por la ayuda


    • Editado jhonsb jueves, 19 de julio de 2018 17:49
    jueves, 19 de julio de 2018 17:48

Todas las respuestas

  • Saludos,

    Bueno aquí un ejemplo; Lo que necesitas es validar con la condición (if).

    If Me.CheckBox1.Checked = True Then
    Me.TextBox1.Enabled = True
    Me.TextBox2.Enabled = True
    'Etc....
    else
    If Me.CheckBox1.Checked = False Then
    Me.TextBox1.Text = "empy"
    Me.TextBox2.Text = "empy"
    'Etc....
    End If
    End If

    SI LA RESPUESTA TE FUE DE AYUDA NO OLVIDES MARCAR COMO CORRECTA PARA AYUDAS DE OTROS USUARIOS EN SITUACIÓN IGUALES O SEMEJANTES. SALUDOS CORDIALES!!!!
     




    • Editado DewinRD viernes, 20 de julio de 2018 12:50
    viernes, 20 de julio de 2018 12:44
  • Hola jhonsb,

    Podrías utilizar Linq para recorrer los controles de tipo TextBox que se encuentren en el formulario.

    If CheckBox1.Checked Then
        Controls.OfType(Of TextBox).ToList().ForEach(Sub(x) x.Enabled = True)
    End If

    O simplemente realizar un ForEach para recorrer todos los controles, validar solo los controles TextBox y activar su propiedad Enabled :

    If CheckBox1.Checked Then
        For Each ctrl As Control In Controls
            If TypeOf ctrl Is TextBox Then
                CType(ctrl, TextBox).Enabled = True
            End If
        Next
    End If

    [-] ...  deseo que al deshabilitar el checkbox todos los texbox tengan el mismo texto por ejemplo "empy" pero de la misma forma quisiera saber si hay una forma de ponerles a todos al mismo tiempo y no tener que estar poniendo de uno en uno ...

    Podrías aplicar la lógica de los ejemplos anteriores :

    If CheckBox1.Checked Then
        Controls.OfType(Of TextBox).ToList().ForEach(Sub(x) x.Enabled = True)
    Else
        For Each txt As TextBox In Controls.OfType(Of TextBox)
            txt.Enabled = False
            txt.Text = "empty"
        Next
    End If


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    sábado, 21 de julio de 2018 2:38