タイトルが示すように、アイテムがコントロールの最上部にドッキングする順序を制御する方法を探しています。
Windowsフォームデザイナーで遊んだことがありますが、RightClick->Order->SendToFront
がやっているのは、それが正確に私がしたいことだからです。できる限り、コンテンツをコントロールに追加すると、最新のコンテンツが常に最上部になり、新しいコンテンツが最下部になり、最も古いコンテンツが最下部になります上。
要約:WinForms(C#)に、コントロールの側面にドッキングする順序を制御する簡単な方法はありますか?
Edit:コントロールを追加するときにコードビハインドからこれを行う必要があります。 WinFormのデザイナーですが、私がやろうとしていることは、WinFormsデザイナーのSendToBack
およびSendToFront
機能を模倣しています
次の方法を使用します。
myControl.SendToBack();
myControl.BringToFront();
[表示]→[他のウィンドウ]→[ドキュメントのアウトライン]に移動します。
そのウィンドウでコントロールをドラッグして、ドッキングが好きなようになります。
既に述べたように、コントロールコレクションに追加された最新のコントロールが一番上にあります。新しいコントロールを下部に追加する必要がある場合は、コントロールのリストを作成し、リストにコントロールを追加し、リストを逆にして、リストをコントロールコレクションに追加することをお勧めします。
List<Control> controls = new List<Control();
controls.Add(new myFirstControl());
controls.Add(new mySecondControl());
controls.Reverse();
this.Controls.AddRange(controls.ToArray());
コントロールがControlsコレクションに追加される順序によって、ドッキングの順序が決まります。
コントロールには、BringToFront
とSendToBack
の2つのメソッドがあります。
このプログラムを実行する場合、これを実現する非常に簡単な方法があることに注意してください。
containerPanel.Controls.SetChildIndex(Element, 0); //sends element to the bottom of the list