winforms 在c# winform中,如何在窗体大小改变时,使控件始终位于窗体的底部中间?

vlju58qv  于 2022-11-16  发布在  C#
关注(0)|答案(1)|浏览(297)

在c# winform中,如何在窗体大小改变时,使控件始终位于窗体的底部中间?
如果使用DockStyle.Bottom,则无法设置其宽度。
我试了一下,下面是代码,但我不知道为什么,主要是我不明白为什么当锚设置好后,Left的值会改变?

public void Run()
    {
        Form form = new Form();
        form.Width = 600;
        form.Height = 600;

        Button btnOK = new Button();
        btnOK.Text = "OK";
        btnOK.Left = form.ClientSize.Width / 2 - btnOK.Width;
        btnOK.Top = 0;
        btnOK.Anchor = AnchorStyles.Bottom;
        Button btnCancel = new Button();
        btnCancel.Text = "Cancel";
        btnCancel.Left = form.ClientSize.Width / 2;
        btnCancel.Top = 0;
        btnCancel.Anchor = AnchorStyles.Bottom;

        Panel panel = new Panel();
        panel.Height = btnOK.Height;
        panel.Width = form.ClientSize.Width;
        panel.Dock = DockStyle.Bottom;
        panel.Controls.Add(btnOK);
        panel.Controls.Add(btnCancel);

        form.Controls.Add(panel);
        form.Show();
    }

fcg9iug3

fcg9iug31#

使用TableLayoutPanel。您可以将它停驻在底部或锚在底部、左侧和右侧。您会有一个列,然后有一个栏,每个控件都有绝对长度,还有一个额外的栏位于左侧,另一个位于右侧,长度为50%。这两个额外的栏会各占据一半的空白空间,因此会将其他栏保留在中间。

相关问题