我在VS2012中创建了一个非常小的表单,在设计器中看起来像这样:
但是当我运行应用程序时,表单的大小会增加,看起来像这样:
任何想法为什么?我尝试了不同的表格边框样式仍然是相同的结果。
如果你也试着看到你得到相同的结果,我将不胜感激。
我觉得VS中的表单有最小大小限制。在这种情况下,问题是IDE允许用户在该限制下重新调整表单大小。
在链接所谓的重复答案(也没有工作)中,回答的人说“我在Windows 8.1上测试过我不能保证它可以在所有Windows版本上运行”并猜猜是什么,我有Windows 7并回答不工作! -
答案 0 :(得分:4)
窗口的最小大小基于最小可用标题栏。为图标和最小/最大/关闭按钮留出足够空间的一个。即使对于没有一个错误的窗户也是如此。但是,解决方法很简单,您可以在Load事件中更改大小。由于视频DPI设置,请注意重新缩放。大致是:
protected override void OnLoad(EventArgs e) {
this.ClientSize = new Size(
numericUpDown1.Right + numericUpDown1.Left,
numericUpDown1.Bottom + numericUpDown1.Top);
base.OnLoad(e);
}
答案 1 :(得分:-1)
还可以将Designer中的MinimumSize
设置为1;1
(而不是默认的0;0
)。
编辑: 我已经在VS710和VS2013上在Windows 7和不同的目标框架(在VS13,3.5,4.0,4.5,4.5.1中)进行了测试。 以下示例代码适用于所有情况。如果有人可以确认哪些系统不起作用,我会欢迎任何评论。
private void button1_Click(object sender, EventArgs e)
{
using (Form frm = new Form())
{
frm.FormBorderStyle = FormBorderStyle.None;
// -> size is 80,80 with this line,
// and wider if this line is commented out
frm.MinimumSize = new Size(1, 1);
frm.BackColor = Color.Orange;
frm.Size = new Size(80, 80);
frm.Click += (s, e2) => frm.Close();
frm.ShowDialog(this);
}
}