投稿者 るきお  (社会人) 投稿日時 2010/8/6 12:43:15
OnPaintでの再描画のパフォーマンスが気になるのであれば、
毎回描画ロジックを実行するのではなく、一度描画した結果をとっておいて、
状況がかわるまではその結果を描画するようにすると良いと思います。

おっしゃるようにウィンドウがアクティブ化されたときにOnPaintが呼び出されるのは特におかしいことではありませんが、タイミングや再描画範囲はOSによって指定されますのでWindowsのバージョンによって異なる部分はあります。

>実際、このOnPaintイベントの発生を1回目以降イベントを起こさないようにしてしまった場合
>何らかの不具合がでますでしょうか?
OnPaintで描画しているものが描画されなくなる以外は特に不具合はないと思います。
なお、OnPaintでe.Graphicsで描画したものは永続化されていないので、要求があるたびに描画を実行しないと、ユーザーからは消えてしまったように見えるのでご注意ください。
つまり、1回目以降OnPaintイベントを処理しないようにした場合、最初(OnPaintイベント内のロジックによって)表示されていたものが、次の瞬間から表示されないことになります。