0

ResizeRedraw を設定しようとしましたが、サイズ変更時にペイント イベントが発生しなかったため、myForm_Resize 内で無効化を開始しました。サイズを変更すると、背景が再描画されていることがわかりますが、サイズ変更を停止するとすぐに、コントロールが背景色で再描画されます。私は何を間違っていますか?

private void pbox_Paint(object sender, PaintEventArgs e) {
    Rectangle boardRect = pbox.ClientRectangle;
    using (Graphics g = pbox.CreateGraphics()) {
        g.FillRectangle(Brushes.Orange, boardRect);
    }
}

private void myForm_Resize(object sender, EventArgs e) {
    this.Invalidate(true);
}
4

1 に答える 1

2

イベント ハンドラGraphicsでオブジェクトを作成しても意味がないことに注意してください。Paintの既存のGraphicsオブジェクトを使用する必要がありますPaintEventArgs。コードを次のように変更すると、今すぐ動作するはずです。

private void pbox_Paint(object sender, PaintEventArgs e) 
{
      Rectangle boardRect = pbox.ClientRectangle;
      e.Graphics.FillRectangle(Brushes.Orange, boardRect);
}
于 2013-04-04T00:47:27.853 に答える