none
Bloquear todos los textbox RRS feed

  • Pregunta

  • Hola, poquito a poquito ya voy avanzando, ya tengo un formulario en el que crear nuevo, guardar, borrar, buscar.... y ahora quiero rizar el rizo un poco mas, para que un usuario no modifique un campo y se le olvide pulsar guardar he pensado en poner un boton EDITAR para que se puedan modificar los campos y la verdad pense en el siguiente codigo :

            For Each c As Control In Me.Controls
                If TypeOf c Is TextBox Then
                    c.locked = true
                End If
            Next

    Pero recibo el error de que la propiedad locked no existe para c... ¿se puede arreglar de alguna manera? o este codigo tendre que dejarlo en el baul de los recuerdos de vb6 ???

    Por otro lado, podeis darme alguna ayuda para que al cerrar el formulario verifique si se ha cambiado algun dato y haga la tipica pregunta de "desea guardar sus cambios?

    Muchas gracias !!

    domingo, 21 de octubre de 2012 0:28

Respuestas

  • Pero recibo el error de que la propiedad locked no existe para c...

    no piensas que ayudaria mencionar el mensaje del error

    digo si mencionas que hay un error conocer que dice seguro oriente para resolver el problema

    ----

    ademas hasta donde se el textbox no tiene ninguna propiedad Locked, no sera el readonly

    podria ser

    For Each c As Control In Me.Controls
       If TypeOf c Is TextBox Then
           Dim text As TextBox = DirectCast(c, TextBox)
           text.Readonly= True
       End If
    Next 

    aunque si usas .net 3.5 podrias usar

    For Each text As TextBox In Me.Controls.OfType(Of TextBox)
    
       text.Readonly= True
    
    Next

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta mayoko domingo, 21 de octubre de 2012 16:05
    domingo, 21 de octubre de 2012 1:16

Todas las respuestas

  • En lugar de Locked usa el Enable.

    Saludos desde Monterrey, N.L. México Luis Escobar :D

    domingo, 21 de octubre de 2012 0:34
  • Pero recibo el error de que la propiedad locked no existe para c...

    no piensas que ayudaria mencionar el mensaje del error

    digo si mencionas que hay un error conocer que dice seguro oriente para resolver el problema

    ----

    ademas hasta donde se el textbox no tiene ninguna propiedad Locked, no sera el readonly

    podria ser

    For Each c As Control In Me.Controls
       If TypeOf c Is TextBox Then
           Dim text As TextBox = DirectCast(c, TextBox)
           text.Readonly= True
       End If
    Next 

    aunque si usas .net 3.5 podrias usar

    For Each text As TextBox In Me.Controls.OfType(Of TextBox)
    
       text.Readonly= True
    
    Next

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta mayoko domingo, 21 de octubre de 2012 16:05
    domingo, 21 de octubre de 2012 1:16
  • Hola!

    Puedes usar lo siguiente:

    For Each Textboxes As Control In Me.Controls
    If GetType(TextBox).IsAssignableFrom(Textboxes.GetType()) Then
    Textboxes.Enabled = False
    End If
    Next
    Salu2!


    Javi.M www.todoinformaticawindows.com - Programación al límite!

    domingo, 21 de octubre de 2012 8:15
  • Muchas gracias, el error era que al poner c. no me aparecia la opcion READONLY pero con esto del directcast se soluciona.

    domingo, 21 de octubre de 2012 16:04