2012-04-19 19 views

答えて

0

OnPaintBackgroundメソッドを無効にすることができます。原因

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

これはあなたが自分自身を再描画する必要があることをコントロールに伝えることができ、コントロールのInvalidate方法では、元

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 
    } 
} 

を形成する独自のリッチテキストボックスを導き出すために持っていることを意味します。 Refreshメソッドは、コントロールを無効にし、すぐに自身を再描画するように指示します(OnPaintBackgroundおよびOnPaintを使用)。

+0

問題は私が背景を描画し、その上にもう一度前景を描くことを強制することです。 – alexandertr

+0

あなた自身の背景描画ロジックを 'OnPaintBackground'で実装するか、それを 'OnPaint'で描画します。そして、あなたの前景描画ロジックは 'OnPaint'に行きます。あなたの絵を常にそこに置いてください。 'Invalidate'を呼び出して、再描画をトリガーすることができます。 –

+0

私の編集した回答をご覧ください。 –

関連する問題