2009-03-13 5 views
1

私は、次のような簡単なフォームを持っている:ウィンドウのサイズが変更された場合ウィンドウのサイズを変更したときに、Windowsフォームが再描画されないのはなぜですか?

using System; 
using System.Drawing; 
using System.Windows.Forms; 

namespace PaintTest 
{ 
    class PaintTest : Form 
    { 
     int _counter = 0; 

     [STAThread] 
     static void Main() 
     { 
     Application.Run(new PaintTest()); 
     } 

     protected override void OnPaint(PaintEventArgs e) 
     { 
     e.Graphics.DrawString(_counter.ToString(), new Font(FontFamily.GenericSerif, 10.0f), Brushes.Blue, 10.0f, 10.0f); 
     _counter++; 
     } 
    } 
} 

は、カウンタがOnPaint()が呼ばれ、カウンタがインクリメント取得されていても、画面上で更新することは表示されません。ウィンドウのサイズが変更されたときにフォームを再描画するにはどうすればよいですか?

答えて

2

クラスに以下を追加します。そのコンストラクタで:フォームは、InitializeComponentの()の呼び出しがある場合

SetStyle(ControlStyles.ResizeRedraw, true);

+0

、あなたはそれの前または後にそのスタイルを設定しますか?それとも問題じゃないの? – Svish

+0

これはbtwで、あなた自身の質問に対する1つの速い答えです... – Svish

+0

Svish、私はそれをテストしただけで問題はありません。再:速い答え - 私はちょうどイライラした朝の後にそれを働いたと愛を共有したい! :-) –

関連する問題