C#以编程方式定位面板以填充父窗体(WinForm)的三分之一

C#以编程方式定位面板以填充父窗体(WinForm)的三分之一,c#,winforms,layout,position,C#,Winforms,Layout,Position,我有一个带有面板和RichTextBox的表单。面板为Dock.Top,RTB为Dock.Bottom。初始化之后。 我希望定位面板,使其占据表格的顶部1/3,RTB占据表格的剩余底部 但是,下面给出的代码不起作用 public frmMain() { InitializeComponent(); panel1.Top = 0; panel1.Width = this.Width;

我有一个带有面板和RichTextBox的表单。面板为Dock.Top,RTB为Dock.Bottom。初始化之后。 我希望定位面板,使其占据表格的顶部1/3,RTB占据表格的剩余底部

但是,下面给出的代码不起作用

 public frmMain()
        {
            InitializeComponent();
            panel1.Top = 0;
            panel1.Width = this.Width;
            panel1.Height = this.Height / 3;
            ConOut.Top = panel1.Height + 10;
            ConOut.Width = this.Width;

        }
问题
1) 上面的代码有什么问题,以至于它不能正确地定位窗体控件?

我想您只需要添加
左侧的
位置

panel1.Left = 0; // Sets top left corner position
完整的代码可以解决这个问题

        InitializeComponent();
        panel1.Top = 0;
        panel1.Left = 0;
        panel1.Width = this.Width;
        panel1.Height = this.Height / 3;

        ConOut.Left = 0;
        ConOut.Top = this.Height / 3;
        ConOut.Width = this.Width;
        ConOut.Height = 2*this.Height / 3;

你能告诉我们你为什么要按程序做吗?(只是好奇)您可能会考虑使用TableLayoutPanel来定位面板和RTB。