是否有一种简单的方法可以挂钩到全局屏幕分辨率更改时触发的事件?
hfsqlsce1#
处理以下事件:
Microsoft.Win32.SystemEvents.DisplaySettingsChanged
您可以参考this页面了解更多详情。您可能还想查看msdn article on SystemEvents类。
de90aj5v2#
当然,您不必取消订阅静态事件(或任何事件),如果您的程序(进程)即将死亡。操作系统将负责将进程的所有内存释放给操作系统。但是,如果订阅静态事件或任何指向生存期比订阅对象的生存期更长的对象的事件,并且您希望该对象符合GC条件-您需要取消订阅(-=)该事件。而且总是取消订阅所有事件总是很好的做法。你永远不知道在你的源代码/产品的生命周期中你的对象的生命周期什么时候被(别人)改变了...
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;这条线
using Microsoft.Win32;
3条答案
按热度按时间hfsqlsce1#
处理以下事件:
您可以参考this页面了解更多详情。
您可能还想查看msdn article on SystemEvents类。
de90aj5v2#
当然,您不必取消订阅静态事件(或任何事件),如果您的程序(进程)即将死亡。操作系统将负责将进程的所有内存释放给操作系统。但是,如果订阅静态事件或任何指向生存期比订阅对象的生存期更长的对象的事件,并且您希望该对象符合GC条件-您需要取消订阅(-=)该事件。
而且总是取消订阅所有事件总是很好的做法。你永远不知道在你的源代码/产品的生命周期中你的对象的生命周期什么时候被(别人)改变了...
qoefvg9y3#
试试这个简单的代码
别忘了
using Microsoft.Win32;
这条线