vs C#界面中点击最大化按钮,其中的控件位置,怎么让它们保持与不最大化时候和窗口的比例一致,不用anchor?

2025-01-04 17:47:15
推荐回答(4个)
回答1:

这是我以前用的控件同比例放大缩小的,希望对你有用
public void AutoScale(FormMain form)
{
form.Tag = form.Width.ToString() + "," + form.Height.ToString();
form.SizeChanged += new EventHandler(Form1_SizeChanged);
}

private void Form1_SizeChanged(object sender, EventArgs e)
{
string[] tmp = ((FormMain)sender).Tag.ToString().Split(',');
float width = (float)((FormMain)sender).Width / (float)Convert.ToInt16(tmp[0]);
float heigth = (float)((FormMain)sender).Height / (float)Convert.ToInt16(tmp[1]);

((FormMain)sender).Tag = ((FormMain)sender).Width.ToString() + "," + ((FormMain)sender).Height;

foreach (Control control in ((FormMain)sender).Controls)
{
control.Scale(new SizeF(width, heigth));

}
}

回答2:

anchor 这么和谐的东西不用岂不是对不起 这个属性.......

如果你不想用的话 那只能在sizechange事件里面自己用代码来调整控件的位置 或者在添加之初就在Location里写明他们的坐标跟窗体位置关系 比如
Label lb= new Label();
lb.Location = new Point(this.Right+10,this.Top+10);

回答3:

只能用dock来布局,不然就要自己手写自动调整代码,判断最大化时,布局界面

回答4:

你看看WPF,这是微软以后推行的界面标准,后台代码C#就是前台的代码有点不一样,不过完全可以做出很华丽的界面。