Color de un textbox enabled false

25/01/2009 - 21:46 por Ramón | Informe spam
hola

Como cambio el color de frente (forecolor) de un textbox que tenga la
propiedad enabled en false?

Preguntas similare

Leer las respuestas

#6 Ramón
28/01/2009 - 16:38 | Informe spam
"Alberto Poblacion"
escribió en el mensaje news:
"Ramón" wrote in message
news:%
Como cambio el color de frente (forecolor) de un textbox que tenga la
propiedad enabled en false?



Podrías crear una clase hija del TextBox, y dentro de tu clase hacer un
override del OnPaint(), y dibujar por tu cuenta el texto usando
instrucciones de GDI+. Tendrías que llamar al base.OnPaint para que se
haga el dibujo en condigiones normales, y luego, si Enabled==false,
repintar encima el texto en el color que tú quieras.




muchas gracias
podrias darme algun ejemplito aunque sea minimo sobre como se dibujaria
encima del texto?

El caso es que los usuarios se me quejan mucho de que no leen bien el texto
cuando esta inactivo que es como lo pongo en modo de consulta.
Es raro que .net no haya contemplado eso como una propiedad.
Respuesta Responder a este mensaje
#7 Alberto Poblacion
28/01/2009 - 18:58 | Informe spam
"Ramón" wrote in message
news:
podrias darme algun ejemplito aunque sea minimo sobre como se dibujaria
encima del texto?



Sería algo parecido a esto:

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Brush b = new SolidBrush(Color.Red); //Por ejemplo.
e.Graphics.DrawString(this.Text, this.Font, b, 0, 0);
}

Por supuesto, esa versión es demasiado simple. Donde dice 0,0 tendrás que
cambiarlo por las coordenadas x,y donde realmente haya que pintar el texto,
que no será exactamente la esquina superior izquierda del textbox, sino un
poquito más abajo y a la derecha. Tendrás que experimentar y hacer el
cálculo exacto teniendo en cuenta las dimensiones reales del textbox, que te
llegan como propiedades del argumento "e". Probablemente también tendrás que
"truncar" debidamente el texto si es más largo de lo que cabe en el textbox.
Respuesta Responder a este mensaje
#8 Ramón
28/01/2009 - 19:27 | Informe spam
muchas gracias voy a hacer pruebas a ver k tal


"Alberto Poblacion"
escribió en el mensaje news:
"Ramón" wrote in message
news:
podrias darme algun ejemplito aunque sea minimo sobre como se dibujaria
encima del texto?



Sería algo parecido a esto:

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Brush b = new SolidBrush(Color.Red); //Por ejemplo.
e.Graphics.DrawString(this.Text, this.Font, b, 0, 0);
}

Por supuesto, esa versión es demasiado simple. Donde dice 0,0 tendrás que
cambiarlo por las coordenadas x,y donde realmente haya que pintar el
texto, que no será exactamente la esquina superior izquierda del textbox,
sino un poquito más abajo y a la derecha. Tendrás que experimentar y hacer
el cálculo exacto teniendo en cuenta las dimensiones reales del textbox,
que te llegan como propiedades del argumento "e". Probablemente también
tendrás que "truncar" debidamente el texto si es más largo de lo que cabe
en el textbox.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida