2

次のコードがあります。

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

       base.OnPaint(e);         


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

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

4

1 に答える 1

3

値を変更すると、グリッドを再作成する必要があるためPaintPaintイベントが再度発生し、コードが再実行されます。
この動作は仕様です。

Paint一般に、ハンドラーで外部状態を変更するべきではありません。描画コードは冪等でなければなりません (提供された 以外Graphics)。
Paintイベントは予測不能で、非常に頻繁に発生します。

于 2012-04-05T03:27:57.793 に答える