私は本当にあなたが絵を描いているかどうかにかかっています。ユーザーの操作の結果としてのみ再描画されるものをペイントする場合は、パフォーマンスの心配を緩和し、必要なときにすべてのグラフィックオブジェクトを臨機応変に作成することができます。
Dispose()
グラフィックに必要なものがすべて揃っていることを確認してください。ペン、ブラシ、リージョン、フォント。これらはすべてGDIオブジェクトであり、GDIハンドルによってシステムに結び付けられています。
何らかの方法でアニメーション化されたグラフィックや、ユーザーがクリックしないで時間が変わるグラフィックスが必要な場合は、すべてのグラフィックオブジェクトを手前に用意してできるだけ再利用してください。ここで適用できるルールは、アニメーションのすべてのフレームを描画する際にメモリを浪費し、ミリ秒を費やす方が良いということです。
最後に、少なくともこの記事では、ダブルバッファリングを使用することを忘れないでください.netコントロールシステムで自動的に、または独自のバックビットマップスタイルにすることを忘れないでください。そしてどのようにコントロールのDisposeメソッドを呼び出します。
はGDI-INGの楽しい:)
おかげで、もう一つ質問がありますか?私は前にコントロールでそれを呼んだことはありません。 –
あなたはそれを呼び出す必要はありません。 .Netは、親コントロールが破棄されたときに呼び出されます(フォームが破棄されたとき)。あなたのメインフォームにある場合、 'Application.Run'呼び出しの終わりに処理されます。 – SLaks
ありがとうございます。もう1つ:)私は一般に1つのフォームしか使用しないので、メインフォームではない別のフォームを作成すると、閉じた後に処分する必要がありますか? –