2012-04-05 10 views
2

は、私は次のコードを持っている:DataGridViewのOnPaintイベント内の無限ループは正常ですか?

int a = 0; 
    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) 
    { 

     base.OnPaint(e);   


     this.Rows[1].Cells[1].Value = a += 1; 
    } 

を、私は無限に変数増加していることがわかります。私はそれを使ってグラフィックを描き、それをうまく使っています。 これは正常ですか?私は無限のグラフインスタンスを作成していますか?または、私は問題があり、分かりません

答えて

3

値を変更すると、グリッドはPaint自身を再作成し、Paintイベントを再起動してコードを再実行する必要があります。
この動作は仕様です。

通常、Paintハンドラでは外部状態を変更しないでください。描画コードは偶数(Graphics以外)でなければなりません。
Paintイベントは予測できず、非常に頻繁に発生します。

+0

非常に良い答え:) –

関連する問題