87

アイテムがコントロールの一番上にドッキングする順序を制御する方法を探しています。

(デザイナーまたはコードを使用して) コントロールに子を追加すると、最新の子が常に一番上に表示されることに気付きました。新しい子が一番下、最年長の子が一番上になるようにしたいです。

コードを介してこれを行う方法はありますか? WinForms デザイナーでは、RightClick->Order->BringToFront/SendToBackは私がやりたいことと同様のことを行っていますが、これをプログラムでどのように行うことができますか?

4

8 に答える 8

156

[表示] → [その他のウィンドウ] → [ドキュメント アウトライン] に移動します。

そのウィンドウでコントロールをドラッグして、ドッキングが好きなようにします。

于 2010-04-09T13:07:19.467 に答える
82

次の方法を使用します。

myControl.SendToBack();
myControl.BringToFront();
于 2010-04-09T13:16:49.983 に答える
13

あなたが言ったように、コントロール コレクションに追加された最新のコントロールが一番上にあります。新しいコントロールを一番下に追加する必要がある場合は、コントロールのリストを作成し、コントロールをリストに追加し、リストを逆にして、リストをコントロール コレクションに追加することをお勧めします。

List<Control> controls = new List<Control();
controls.Add(new myFirstControl());
controls.Add(new mySecondControl());
controls.Reverse();
this.Controls.AddRange(controls.ToArray());
于 2010-04-09T13:17:24.380 に答える
6

コントロールには、探しているものを実現するための 2 つのメソッドがBringToFrontありSendToBackます。

于 2010-04-09T12:58:20.330 に答える
4

コントロールが Controls コレクションに追加される順序によって、ドッキング順序が決まります。

于 2010-04-09T13:12:16.173 に答える
3

(別のオプションを表示するため): Visual Studio 2012 (およびそれ以降) の場合:

  1. 前面 (または背面) に移動するコントロールを選択します。
  2. 下のマークされたボタンをクリックします (最前面へ移動 / 最背面へ移動)。 ここに画像の説明を入力

これにより、コントロールを希望の順序に並べ替えることができます。

于 2016-11-03T09:26:16.323 に答える
3

これをプログラムで行う場合、これを実現するための非常に簡単な方法があることに注意してください。

containerPanel.Controls.SetChildIndex(Element, 0); //sends element to the bottom of the list
于 2019-08-09T05:29:31.103 に答える
-4

FlowLayoutPanel を使用すると、必要なことが正確に実行されます。

于 2016-04-01T14:54:30.160 に答える