パネルをWinFormに配置すると、予期しない結果が生じるようです。3つのパネルがあり、それらをすべて上部にドッキングして、すべてが1つずつ続くようにすると、最後のパネルを、最後にドッキングしたパネルの下部ではなく、アプリケーションの非常に上部にドッキングします。
WinFormsパネルのドックプロパティがどのように機能するかについて混乱していると思います!?アプリケーションをレイアウトしようとするたびに、1つのパネルが不要な場所にドッキングしたいので、頭痛の種になります。
パネルをWinFormに配置すると、予期しない結果が生じるようです。3つのパネルがあり、それらをすべて上部にドッキングして、すべてが1つずつ続くようにすると、最後のパネルを、最後にドッキングしたパネルの下部ではなく、アプリケーションの非常に上部にドッキングします。
WinFormsパネルのドックプロパティがどのように機能するかについて混乱していると思います!?アプリケーションをレイアウトしようとするたびに、1つのパネルが不要な場所にドッキングしたいので、頭痛の種になります。
Visual Studioの「ドキュメントのアウトライン」ビューを使用して、フォームの階層構造を確認します。すべてのパネルが同じ親の下で同じレベルにあることを確認でき、ドッキングの動作/優先度を変更するためにパネルを並べ替えることができます。
もう少し調べてみたところ、stackoverflowでこの質問が見つかりました。そのウィンドウを開いてパネルを階層内で上に移動すると、期待どおりにドッキングされました。私は、私が混乱させることができるある種の制御階層がなければならないことを知っていました。
Ypuはこれをチェックする必要があります
そして、あなたはやってみることができます:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CreatePanels();
}
private void CreatePanels()
{
//YOu should create panelGlobal on your winform and set DockStyle.Fill
panelGlobal.Controls.Add(CreatePanel("topPanel",DockStyle.Top,Color.Red));
panelGlobal.Controls.Add(CreatePanel("bottomPAnel", DockStyle.Bottom, Color.Gray));
panelGlobal.Controls.Add(CreatePanel("fillPanel",DockStyle.Fill,Color.Snow));
}
private Panel CreatePanel(string panelName, DockStyle dockStyle,Color color)
{
return new Panel() { Name = panelName, Dock = dockStyle , BackColor=color};
}
}