メソッド | 機能 |
---|---|
Add(Control) | コントロールをコレクションに追加できる |
AddRange(Control[]) | 複数のコントロールをコレクションに追加できる |
Remove(Control) | コントロールのコレクションから、指定のコントロールを除去できる |
Clear() | コントロールのコレクションから、すべてのコントロールを除去できる |
内部ではSuspendLayout()でレイアウト ロジックを停止した上で、順にAdd()で追加されています。
owner.SuspendLayout(); try { for(int i=0;i < controls.Length; ++i) { Add(controls[i]); } } finally { owner.ResumeLayout(true); }AddRange - Control.cs
Remove()でコントロールを除去するとハンドルが再生成され、改めて表示されることでVisibleChangedイベントが発生することがあります。Remove - Control.cs
これを回避するには除去したいコントロールのDispose()を呼んで破棄します。そうすることでコントロールのコレクションからも除去されます。
子コントロールのインデックスを設定できます。Control.ControlCollection.SetChildIndex(Control, Int32) Method (System.Windows.Forms) | Microsoft Learn