1

重複の可能性:
Panel.Dock他のPanel.Dock設定を無視して塗りつぶし

パネルをWinFormに配置すると、予期しない結果が生じるようです。3つのパネルがあり、それらをすべて上部にドッキングして、すべてが1つずつ続くようにすると、最後のパネルを、最後にドッキングしたパネルの下部ではなく、アプリケーションの非常に上部にドッキングします。

WinFormsパネルのドックプロパティがどのように機能するかについて混乱していると思います!?アプリケーションをレイアウトしようとするたびに、1つのパネルが不要な場所にドッキングしたいので、頭痛の種になります。

4

3 に答える 3

6

Visual Studioの「ドキュメントのアウトライン」ビューを使用して、フォームの階層構造を確認します。すべてのパネルが同じ親の下で同じレベルにあることを確認でき、ドッキングの動作/優先度を変更するためにパネルを並べ替えることができます。

于 2012-11-05T17:56:21.490 に答える
1

もう少し調べてみたところ、stackoverflowでこの質問が見つかりました。そのウィンドウを開いてパネルを階層内で上に移動すると、期待どおりにドッキングされました。私は、私が混乱させることができるある種の制御階層がなければならないことを知っていました。

于 2012-11-05T17:53:25.820 に答える
0

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};
            }
        }
于 2012-11-05T18:04:05.473 に答える