認爲應該很容易創建一個ProgressBar
,它自己繪製了一些文本。不過,我不太清楚這裏發生了什麼......C#:覆蓋ProgressBar上的OnPaint不工作?
我添加了以下兩個替代:
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);
}
但是,我沒有得到任何的文字,並且這些方法並不甚至似乎被稱爲。這裏發生了什麼?
更新:多虧了兩個答案,到目前爲止,我得到它通過使用實際調用OnPaint
,我得到它在new Rectangle(0, 0, Width, Height)
發送,而不是畫在正確的地方文本的Bounds
。
我現在得到了文字,但ProgressBar
已經不存在了......並且關鍵點是讓文字在ProgressBar
之上。任何想法如何我可以解決這個問題?
Oooh。接得好。 – Svish 2009-10-04 22:56:47