如何在 运行 时间内根据屏幕分辨率自动调整表单 window 的大小(设计期间创建的 window 的大小太大)

How to autosize the form window based on screen resolution during run time (Where the size of the window created during design is too large)

我创建了一个 windows 应用程序,其中的表单大小足以查看。

我希望根据显示器的屏幕分辨率缩小或最大化窗体,以便用户可以以紧凑的方式查看所有控件。

我尝试了表单中的自动大小 属性,但这不起作用。有什么属性的表格可以解决这个问题吗?

或者我是否需要编写其他代码来解决此问题?

谢谢

在表单加载事件中,执行以下操作:

    private void Form_Load(object sender, EventArgs e) {
        Rectangle resolutionRect = System.Windows.Forms.Screen.FromControl(this).Bounds;
        if (this.Width >= resolutionRect.Width || this.Height >= resolutionRect.Height) {
            this.WindowState = FormWindowState.Maximized;
        }
    }

设置 WindowState = Maximized 将导致 window 打开到屏幕分辨率的最大范围。不管那个值是多少,它都会匹配它。

编辑: 从您的评论来看,您似乎想要 AutoSize 属性 将完成的工作。我更新了表单以添加一些控件并设置 AutoSize = TrueAutoSizeMode = GrowAndShrink。在这三个属性之间,您应该能够让表单完全按照您的意愿行事。要注意的一件事是表单中控件的完整范围。从这张图片中,您可以看到运行时表单将调整大小以适应两个文本框,而在编辑器中,我缩小了表单以隐藏几乎所有内容。另请注意,在下面的示例中,我设置了 WindowState = Normal.