在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();
}
1条答案
按热度按时间fcg9iug31#
使用TableLayoutPanel。您可以将它停驻在底部或锚在底部、左侧和右侧。您会有一个列,然后有一个栏,每个控件都有绝对长度,还有一个额外的栏位于左侧,另一个位于右侧,长度为50%。这两个额外的栏会各占据一半的空白空间,因此会将其他栏保留在中间。