私たちのアプリケーションでは、行のすべてのセルは、ペイント中に初期化されたユーザー コントロールです。
何度もスクロールしたり、最大化/最小化したりすると、セルを行ごとに再描画し、カウントのピークとアプリケーションのクラッシュを処理しようとしました。
ここで質問: 少しスクロールすると、すべての行に対して onpaint() が呼び出されますが、ビューから移動された行 (最大化されたウィンドウに表示されるのは 20 行のみ) はどうすれば破棄できますか?
UI コンストラクターはロード時に 1 回呼び出されましたが、その後はペイントのみがトリガーされました。
すべてのセルをユーザー コントロールとして持つグリッドを考えてみましょう。ウィンドウを最大化/最小化するか、グリッドをスクロールすると、GDI カウントは一定のままですが、すべてのコントロールが再起動され、ハンドル リークが発生します。