C#告诉表格是否最大化

Ozz*_*zzy 1 c# resize wndproc maximize winforms

好的,我的问题.我有一个表单,当它没有最大化时,它的最大大小必须是表单内组件的总高度.为此,我用这个:

    private void resize_form(object sender, EventArgs e)
    {
        this.MaximumSize = new System.Drawing.Size(1000, this.panel4.Height + this.label2.Height + this.HeightMin);
    }
Run Code Online (Sandbox Code Playgroud)

这会触发表单的Resize事件.因为组件大小总是在变化,所以在resize事件上执行此操作是有意义的.如果我想最大化表单,表单只是转到this.MaximumSize中定义的最高设置.所以我想知道是否有一种方法可以告诉窗体何时最大化并在窗体最大化之前将其最大尺寸设置为屏幕边界.

如果有更好的方法来更改maximumsize值而不调整大小事件,那也会很棒:)

Chr*_*isF 8

您仍然需要使用resize事件,但请检查WindowState:

if (this.WindowState == FormWindowState.Maximized)
{
    // Do your stuff
}
Run Code Online (Sandbox Code Playgroud)

正如yshuditelu指出的那样,您也可以设置表单的最小大小属性 - 当与明智地使用锚值相结合时,这意味着它永远不会缩小得太远,当它确实增长时,组件将移动和/或增长为需要.