C# 判断表单是否最大化

标签 c# winforms resize wndproc maximize

好的,这是我的问题。我有一个表格,当它没有最大化时,它的最大尺寸必须是表格内组件的总高度。为此,我使用了这个:

    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/

相关文章:

wpf - 如何在WPF中设置可调整字体大小的文本 block 或标签?

c# - 在 C# 中使用字符串作为名称创建对象

c# - ASP.NET:字典中的Button对象上的EventHandler问题

c - 如何在同一个项目中混合c和c++表单应用程序?

c# - 如何保存datagridview的排序阶段通知c#

java - 在 Java 中调整大小时,绘制的内容不可见

C - 调整/放大图像

c# - 以编程方式单击按钮并显示按下的动画

c# - 为 SQL Compact 4 设置 EF4 数据源

c# - printdocument 添加空白页