我认为应该很容易创建一个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);
}
Run Code Online (Sandbox Code Playgroud)
但是,我没有文本,甚至似乎都没有调用这些方法.这里发生了什么?
更新:由于到目前为止的两个答案,我已经得到它实际调用OnPaint使用SetStyle(ControlStyles.UserPaint, true),我已经得到它通过发送new Rectangle(0, 0, Width, Height)而不是在正确的地方绘制文本Bounds.
我现在确实得到了文字,但是ProgressBar它已经消失了...而且重点是将文本置于文本之上ProgressBar.知道如何解决这个问题吗?