强制Richtextbox仅重绘其前景

时间:2012-04-19 12:54:37

标签: c# .net windows winforms

你知道如何强制Richtextbox只重绘它的前景(不是背景)。

我应该发送消息还是类似的东西?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以覆盖OnPaintBackground方法。

protected override void OnPaintBackground(PaintEventArgs pevent)
{
    if (_I_need_to_paint_background) {
        base.OnPaintBackground(pevent)
    }
}

原因这意味着您必须从原始

派生自己的RichTextBox表单
public class MyRichTextBox : RichTextBox
{
    ...

    protected override void OnPaintBackground(PaintEventArgs pevent)
    {
        // Your background painting logic goes here
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        // Your foreground painting logic goes here
    }
}

使用Invalidate控件方法,您可以告诉控件他们应该重绘自己。 Refresh方法使控件无效并告诉它立即重绘(使用OnPaintBackgroundOnPaint)。