0

Richtextboxにフォアグラウンド(バックグラウンドではない)のみを再描画させる方法を知っていますか。

メッセージなどを送信する必要がありますか?

ありがとう !

4

1 に答える 1

0

メソッドをオーバーライドできますOnPaintBackground

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

これは、元のRichTextBoxから独自の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 に答える