私は、フォーム上のすべてのコントロールを再帰的にループし、それらのいくつかのコードを処理するルーチンを持っています。パネルからコントロールを削除しても、フォームから削除されませんか?
私は、ユーザーの選択に応じて画面を使用してコントロールを追加したり削除したりします。
私は、panel.Controls.Remove(control1)
が実際にフォームからそれを削除していないことがわかりました。フォーム上のコントロールを再帰的にループするルーチンを実行するとき、私が削除したと思ったコントロールはまだ見つかっています。
私がやったまでは "消える" しませんでした:
panel.Controls.Remove(control1);
this.Controls.Remove(control1)
を、これは予想されていますか?誰かが私にこのことを説明したり、Windowsフォームのコントロール動作を説明するどこかに私を指摘できますか?
ありがとうございます!
これは期待された動作ではありません。それが「まだ見つかっています」と言っても、まだ画面上で見ることができますか? 'Remove'メソッドを呼び出してからフォームが再描画(再描画)されたことは確かですか? –
'SuspendLayout'と' ResumeLayout'にそれらを囲んでみましたか?フォームが再描画されなかったかもしれません – V4Vendetta
また、 'Controls.Remove'であってはいけませんか? – V4Vendetta