好的,这是我的问题。我有一个表格,当它没有最大化时,它的最大尺寸必须是表格内组件的总高度。为此,我使用了这个:
private void resize_form(object sender, EventArgs e)
{
this.MaximumSize = new System.Drawing.Size(1000, this.panel4.Height + this.label2.Height + this.HeightMin);
}
在窗体的 Resize 事件上触发。因为组件大小总是在变化,所以在调整大小事件上这样做是有意义的。如果我想最大化表单,表单只会转到 this.MaximumSize 中定义的最高设置。所以我想知道是否有一种方法可以判断表单何时最大化,并在表单最大化之前将其最大尺寸设置为屏幕边界。
如果有更好的方法可以在不发生调整大小事件的情况下更改最大值,那也很棒 :)
最佳答案
您仍然需要使用调整大小事件,但检查WindowState
:
if (this.WindowState == FormWindowState.Maximized)
{
// Do your stuff
}
正如 yshuditelu 指出的那样,您也可以设置表单的最小尺寸属性 - 当与 anchor 值的明智使用相结合时,这应该意味着它永远不会缩小太多,并且当它确实增长时,组件将移动和/或根据需要增长。
关于C# 判断表单是否最大化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/940549/