ユーザーコントロールがたくさんあり、それぞれが異なるメニュー選択で画面を埋めます。前のものをKILLしたい(メモリをクリアするため)、実行時にどれを知ることができないため、ハードコーディングできませんは、表示された前のコントロールでした。フォームからコントロールを削除するだけでは、 this.Controls.Remove('uc_foo')
メモリが完全にクリアされません(taskmgrで確認しました)
foreach を使用してフォームのコントロールを反復し、適用するobject_reference = null
と、「foreach 反復変数であるため割り当てられません」というエラーが発生します。
読み取り専用のため、= null へのアクセスthis.Controls[i]
は拒否されます
どうすればそれを取り除くことができますか?
更新フォームからコントロールを削除し、それへの他の参照がない場合、私が理解したことから、最終的にはメモリからクリアされますobject_reference = null
。 taskmgr ですぐにメモリが削除されますが、ガベージ コレクションは適切な気分のときにそれを行います。