强制富文本框仅重绘其前景

本文关键字:文本 | 更新日期: 2023-09-27 18:31:33

你知道如何强制富文本框只重绘它的前景(而不是背景)吗?

我应该发送消息或类似的东西吗?

谢谢!

强制富文本框仅重绘其前景

您可以重写 OnPaintBackground 方法。

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

原因这意味着您必须从原始来源派生自己的富文本框

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 )。