0

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

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

谢谢 !

4

1 回答 1

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方法使控件无效并告诉它立即重绘自己(使用OnPaintBackgroundand OnPaint)。

于 2012-04-19T13:05:24.473 回答