创建分辨率独立的WinForm,为C# WinForm设置分辨率,获取WinForm运行所在屏幕的分辨率。

3

我在1366x768分辨率下制作了一个应用程序,这是我的笔记本电脑当前的分辨率。由于我是初学者,所以没有考虑分辨率问题。

当我将该应用程序在分辨率较低的PC上运行时,一切都乱了。窗体跑到别的地方去了,大部分内容都被隐藏了。

因此,请帮助我如何使我的窗体分辨率独立,或者如何获取当前屏幕分辨率并将其设置到我的窗体中,以便它能自动调整。

2个回答

4
属性
该属性
Screen.PrimaryScreen.WorkingArea

对于表单的尺寸和定位非常有用。 例如,这段代码:

        this.Width = Screen.PrimaryScreen.WorkingArea.Width/2;
        this.Height = Screen.PrimaryScreen.WorkingArea.Height/2;
        this.Top = (Screen.PrimaryScreen.WorkingArea.Top + Screen.PrimaryScreen.WorkingArea.Height)/4;
        this.Left = (Screen.PrimaryScreen.WorkingArea.Left + Screen.PrimaryScreen.WorkingArea.Width)/4;

(Screen类是System.Windows.Forms命名空间的成员)

它会将执行该类的窗体置于屏幕中央,并将其大小设置为屏幕的一半。

WorkingArea变量用于在计算屏幕大小时排除任务栏和其他停靠在桌面上的项目。

希望这能帮到您。


为什么要添加这段代码,当你可以通过将窗体的“StartPosition”属性设置为CenterScreen,WindowsState设置为Maximized来实现完全相同的效果呢? - Scope Creep
@ScopeCreep,你确定OP想要一个最大化的窗体吗?我的代码只是占据屏幕的一部分。 - Neowizard

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接