通常のPanelコントロールには、ユーザーコントロールが多数含まれています。コンテナを更新せずにコンテナからコントロールを削除する方法
panel.Controls.Clear();
が、これは、私は(すぐにとはいえ)個別に消えて各コントロールを参照してください効果があります。現時点では、私は、次の手順を実行します。
SuspendLayout
およびResumeLayout
を使用すると、顕著な効果はありません。
質問:すべてのコントロールを削除して、すべての子コントロールが削除されたときにのみコンテナを更新する方法はありますか?
編集:私が削除しているコントロールはUserControlから派生しているので、いくつかの描画動作を制御できます。それらが削除されるときに更新を防ぐために私がオーバーライドすることができるいくつかの機能はありますか?
これを行うと、ウィンドウがリークしています。はい、しばらくするとかなり遅くなります。代わりにwhile(panel.Controls.Count> 0)panel.Controls [0] .Dispose();を使用してください。まだ遅い場合は、パネルのVisibleプロパティを最初にfalseに設定します。 –
@ HansPassant +1 Greeeeeeat !!!それはトリックでした! – equisde