我已经阅读了几个堆栈溢出问题,但没有找到解决问题的好方法。每当调整表单大小时,如何调整控件的大小?当表格变大或变小时,我希望它们变大或变小。
在 Visual Basic 中,使用 form.Zoom 属性很容易做到这一点(当然,它实际上并不需要调整控件的大小,但解决了我需要的问题)。不幸的是,这在 C# winforms 中不可用。
这是我没有运气尝试过的其他一些事情:
private void formMain_Resize(object sender, EventArgs e)
{/*
double scale;
this.scaleWidth = (float)this.Width / (float)this.origWidth;
this.scaleHeight = (float)this.Height / (float)this.origHeight;
if (this.scaleHeight > this.scaleWidth)
{
scale = this.scaleHeight;
}
else
{
scale = this.scaleWidth;
}
foreach (Control control in this.Controls)
{
control.Height = (int)(control.Height * this.scaleHeight);
control.Width = (int)(control.Width * this.scaleWidth);
this.Refresh();
// control.Font = new Font("Verdana", control.Font.SizeInPoints * heightRatio * widthRatio);
}
///////This scaling didnt work for me either
//this.Scale(new SizeF(this.scaleWidth, this.scaleHeight));
//this.Refresh();
*/
}
如果我在另一个堆栈溢出问题上忽略了一个实际工作的代码示例,我很乐意看到它,但我发现的那些与上面那些不起作用的类似。
也许我在滥用它,有人可以发布示例代码,以向我们这些不断提出这个问题的人展示如何解决问题。
此外,我尝试使用一些锚/对接工具,认为它们会自动允许它,但它没有。