OnPaint del TextBox

29/01/2004 - 02:53 por Mauricio Atanache G. | Informe spam
Mi problema es el siguiente :

He creado un control heredado de TextBox, mi idea era cambiarle el color del
borde, esto lo hago
sobrecargando el evento OnPaint y dibujando el rectangulo y luego llamando
base.OnPaint(e).

El problema es que el control no muestra el texto que tiene sino hasta
cuando hago doble click sobre el control, de otra forma no muestra el texto
que tiene el control.

He intentado colocando el llamado a OnPaint antes y despues de digujar el
control pero hasta ahora nada ha funcionado.

En internet he encontrado otras personas con el mismo problema pero hasta
ahora ninguna solucion ha funcionado.

Otra posibilidad podria ser dibujar el texto con

e.Graphics.DrawString, pero este metodo necesita un Brush que no se de donde
obtener.

Cordial saludo,


Mauricio Atanache.
 

Leer las respuestas

#1 David caso
29/01/2004 - 13:47 | Informe spam
buenas:

efectivamente, premio, te has ganado un perrito piloto.
No ahora en serio, y sin coña, en el paint, no te vale.
la solucion es hacer el control con WndProc.
Pequeño ejemplo:

private const int WM_PAINT = 0xF;

protected override void WndProc(ref Message m)
{
base.WndProc (ref m);
if (m.Msg == WM_PAINT)
{
Graphics g = this.CreateGraphics();
.
d.dispose();

}
}

un saludin

Preguntas similares