检测分辨率c# WinForms的更改

92dk7w1h  于 2023-01-21  发布在  C#
关注(0)|答案(3)|浏览(843)

是否有一种简单的方法可以挂钩到全局屏幕分辨率更改时触发的事件?

hfsqlsce

hfsqlsce1#

处理以下事件:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged

您可以参考this页面了解更多详情。
您可能还想查看msdn article on SystemEvents类。

de90aj5v

de90aj5v2#

当然,您不必取消订阅静态事件(或任何事件),如果您的程序(进程)即将死亡。操作系统将负责将进程的所有内存释放给操作系统。但是,如果订阅静态事件或任何指向生存期比订阅对象的生存期更长的对象的事件,并且您希望该对象符合GC条件-您需要取消订阅(-=)该事件。
而且总是取消订阅所有事件总是很好的做法。你永远不知道在你的源代码/产品的生命周期中你的对象的生命周期什么时候被(别人)改变了...

qoefvg9y

qoefvg9y3#

试试这个简单的代码

using Microsoft.Win32;

SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged);

static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
     MessageBox.Show("Resolution Change.");
}

别忘了using Microsoft.Win32;这条线

相关问题