ProgressBar
正在考虑创建一个在其自身上绘制一些文本的内容应该很容易。但是,我不太确定这里发生了什么......
我添加了以下两个覆盖:
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
通过 using实际调用了它SetStyle(ControlStyles.UserPaint, true)
,并且我已经通过发送new Rectangle(0, 0, Width, Height)
而不是发送它来在正确的位置绘制文本Bounds
。
我现在确实收到了文字,但它ProgressBar
已经消失了……重点是在ProgressBar
. 知道如何解决这个问题吗?