Estaba pensando que debería ser bastante fácil crear un ProgressBar
que dibujara un texto sobre sí mismo. Sin embargo, no estoy muy seguro de lo que está sucediendo aquí ...C#: Anulación de OnPaint en ProgressBar no funciona?
que añaden los siguientes dos sustituciones:
protected override void OnPaintBackground(PaintEventArgs pevent)
{
base.OnPaintBackground(pevent);
var flags = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter | TextFormatFlags.SingleLine | TextFormatFlags.WordEllipsis;
TextRenderer.DrawText(pevent.Graphics, "Hello", Font, Bounds, Color.Black, flags);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var flags = TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter | TextFormatFlags.SingleLine | TextFormatFlags.WordEllipsis;
TextRenderer.DrawText(e.Graphics, "Hello", Font, Bounds, Color.Black, flags);
}
Sin embargo, yo no recibo ningún texto, y los métodos ni siquiera parece ser llamado . ¿Que esta pasando aqui?
Actualización: Gracias a las dos respuestas hasta ahora, han conseguido que en realidad llamar a la OnPaint
utilizando , y han conseguido que dibujar el texto en el lugar correcto mediante el envío de new Rectangle(0, 0, Width, Height)
vez de Bounds
.
Obtengo texto ahora, pero el ProgressBar
se ha ido ... y el punto era como tener el texto encima del ProgressBar
. ¿Alguna idea de cómo puedo resolver esto?
Oooh. Buena atrapada. – Svish