在C#环境下使用winfrom时如何让窗体根据用户显示器的分辨率来调整窗体的分辨率?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#环境下使用winfrom时如何让窗体根据用户显示器的分辨率来调整窗体的分辨率?相关的知识,希望对你有一定的参考价值。

如题!

你的意思是不是在屏幕分辨率改变的时候调整窗体的大小
public Form1()

InitializeComponent();
Microsoft.Win32.SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged);

void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)

MessageBox.Show("当前分辨率:" + Screen.PrimaryScreen.Bounds.Width + "×" + Screen.PrimaryScreen.Bounds.Height);
//在这写调整窗体大小的代码
参考技术A //获取屏幕的工作区域的大小(以像素为单位)。
SystemInformation.WorkingArea

WorkingArea 属性指示可由应用程序使用的屏幕的边界。工作区是显示器的桌面区域,不包括任务栏、停靠窗口和停靠工具栏。
WorkingArea 始终返回主监视器的工作区域。如果需要多显示器环境中的监视器的工作区域,可以调用 Screen.GetWorkingArea 的重载之一。
参考技术B WINFORM 窗体,默认是自动调整的 参考技术C my.computer.screen 对象里有工作区大小,对你该有用

C# winfrom 窗体的StartPosition 属性

StartPosition属性有如下选项,分别含义如下:

CenterParent 窗体在其父窗体中居中。
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
Manual 窗体的位置由 Location 属性确定。
WindowsDefaultBounds 窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。
WindowsDefaultLocation 窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。

CenterScreen的意思并不是屏幕居中(是相对的),它是在"当前显示窗口"中居中。

当用Show()方法时应选择CenterScreen,

用ShowDialog()方法时应选择CenterParent,这样才能让要显示的窗口居中。

以上是关于在C#环境下使用winfrom时如何让窗体根据用户显示器的分辨率来调整窗体的分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

C#简单解决winfrom窗体打开时候闪动

C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)

C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)

C# winfrom 窗体的StartPosition 属性

2021-11-18 WinFrom面试题 如何在关闭窗体时,可以取消关闭?

2021-11-18 WinFrom面试题 怎么让一个窗体在运行时,只能打开一个?