none
Cambiar el color del textbox cuando enabled =False RRS feed

  • Pregunta

  • Cambiar el color del textbox cuando enabled =False

    No he podido cambiar el forecolor de un TextBox cuando este tiene la propiedad enabled  igual a false, el color del texto cambia a gris.


    .Se puede hacer algo?; Ya que el color de fondo y el de la fuente son casi iguales.

    sábado, 11 de octubre de 2014 22:28

Respuestas

  • "EliannyRD" preguntó:

    > No he podido cambiar el forecolor de un TextBox cuando este tiene
    > la propiedad enabled  igual a false, el color del texto cambia a gris.
    >

    Hola:

    Y no vas a poder cambiar el valor de la propiedad ForeColor mientras el control TextBox esté deshabilitado.

    > Se puede hacer algo?; Ya que el color de fondo y el de la fuente son
    > casi iguales.

    Si no quieres complicarte demasiado la vida con herencia de controles y dibujar texto, la solución es bien fácil. Todo consiste en asignarle explícitamente un color a la propiedad BackColor del control TextBox diferente a la que tiene por defecto (valor SystemColors.Window), para que el color de primer plano del texto deshabilitado no sea el mismo o parecido al que tiene la propiedad BackColor del control TextBox deshabilitado.

    En el evento Load del formulario ejecutarías:

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
            TextBox1.BackColor = Color.White
            TextBox2.BackColor = Color.White
            TextBox3.BackColor = Color.White
    
        End Sub

    También puedes cambiar el valor de la propiedad BackColor desde la ventana de Propiedades, asignándole el valor White o cualquier otro distinto al color Window, que repito es su valor por defecto y en el 99 por 100 de los casos éste color del sistema será igual al color blanco, pero puede que en el 1 por 100 restante sea de otro color diferente al blanco. ;-)

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    domingo, 12 de octubre de 2014 4:51
    Moderador
  • y si en ves de usar .Enabled usas .ReadOnly= true?

    tal vez puedas cambiar  el color.

    Otra opción podría ser cambiando el BackColor.


    jefelon


    • Editado Jefelon domingo, 12 de octubre de 2014 2:35 error de booleano
    • Marcado como respuesta EliannyRD domingo, 12 de octubre de 2014 16:24
    sábado, 11 de octubre de 2014 23:01

Todas las respuestas

  • y si en ves de usar .Enabled usas .ReadOnly= true?

    tal vez puedas cambiar  el color.

    Otra opción podría ser cambiando el BackColor.


    jefelon


    • Editado Jefelon domingo, 12 de octubre de 2014 2:35 error de booleano
    • Marcado como respuesta EliannyRD domingo, 12 de octubre de 2014 16:24
    sábado, 11 de octubre de 2014 23:01
  • Opción: 2

    y si en ves de usar .Enabled usas .ReadOnly= false?

    todavía me trae problemas, 

    si pero de igual forma puedo obtener el foco hacendo click y es algo que no quisiera es deicr que por ningun motivo le permta al usuario acceder a ese control se puede hacer algo al respecto????

    sábado, 11 de octubre de 2014 23:20
  • prueba con su propieda TabStop=false

    jefelon

    sábado, 11 de octubre de 2014 23:40
  • puse la propiedad TabStop=false

    y puedo obtener el foco hacendo click y es algo que no quisiera es deicr que por ningun motivo le permta al usuario acceder a ese control se puede hacer algo al respecto????

    gracias por interesarte en mi caso, pero todavía no esta resuelto. 

    domingo, 12 de octubre de 2014 1:53
  • mira, tambien estuve averiguando ese tema, y creo q está difícil cambiar propiedades... debe haber otra forma de hacer las cosas, como bloquear el teclado para que no escriban. Si detallaras mas tu problema, podrían muchos ayudarte.

    Mira si es que solo te molesta que el fondo y el color de texto se parezcan mucho, podrías cambiar el color del Form, y poner mas grande el texto y  negrita. Recuerda que no siempre se va a ver igual en otras PCs.


    jefelon

    domingo, 12 de octubre de 2014 2:28
  • o tambien cuando el texbox entre en foco, puedes pasar a otro control

    OtroTexbox.focus()

    primero pones .ReadOnly=true, arriba puse false, ajajaj es true.


    jefelon

    domingo, 12 de octubre de 2014 2:46
  • "EliannyRD" preguntó:

    > No he podido cambiar el forecolor de un TextBox cuando este tiene
    > la propiedad enabled  igual a false, el color del texto cambia a gris.
    >

    Hola:

    Y no vas a poder cambiar el valor de la propiedad ForeColor mientras el control TextBox esté deshabilitado.

    > Se puede hacer algo?; Ya que el color de fondo y el de la fuente son
    > casi iguales.

    Si no quieres complicarte demasiado la vida con herencia de controles y dibujar texto, la solución es bien fácil. Todo consiste en asignarle explícitamente un color a la propiedad BackColor del control TextBox diferente a la que tiene por defecto (valor SystemColors.Window), para que el color de primer plano del texto deshabilitado no sea el mismo o parecido al que tiene la propiedad BackColor del control TextBox deshabilitado.

    En el evento Load del formulario ejecutarías:

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
            TextBox1.BackColor = Color.White
            TextBox2.BackColor = Color.White
            TextBox3.BackColor = Color.White
    
        End Sub

    También puedes cambiar el valor de la propiedad BackColor desde la ventana de Propiedades, asignándole el valor White o cualquier otro distinto al color Window, que repito es su valor por defecto y en el 99 por 100 de los casos éste color del sistema será igual al color blanco, pero puede que en el 1 por 100 restante sea de otro color diferente al blanco. ;-)

    Un saludo


    Enrique Martínez Montejo
            [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    domingo, 12 de octubre de 2014 4:51
    Moderador
  • Estoy teniendo exactamente el mismo problema que tu. Necesito cambiar el backcolor y el Fontcolor de un textbox cuando está Enabled = false y no he encontrado la forma de hacerlo directamente. Pero hice esto que me funcionó muy bien y no es tan difícil.

    En lugar de jugar con la propiedad Enabled del TextBox usé directamente la propiedad Visible la cual la puse en false y al mismo tiempo puse un Label con el mismo valor de Text del TextBox en la misma posición.

    Entonces juego con las propiedades visible tanto del Label como del Textbox y cuando muestro el Label actúa exactamente igual que el TextBox cuando está con el Enabled = False pero pudiendo trabajar con todos los parámetros de color.

    Espero que les ayude!.

    Saludos.

    Osvaldo Aveni

    Argentina

    viernes, 27 de marzo de 2015 12:48
  • deja Enabled en true y ReadOnly en true 

    Y LISTO

    • Editado gamsomam viernes, 8 de mayo de 2015 6:32
    • Propuesto como respuesta Danieledusp lunes, 8 de marzo de 2021 3:37
    viernes, 8 de mayo de 2015 6:32