Обнаружить изменение разрешения c # WinForms

17

есть ли простой способ подключиться к событию, которое запускается при изменении глобального разрешения экрана?

    
задан Matze 14.01.2009 в 10:03
источник

3 ответа

29

Обратите внимание на следующее событие:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged

Для более подробной информации вы можете обратиться к этой странице .

Вы также можете увидеть статью msdn о классе SystemEvents.     

ответ дан Frederick The Fool 14.01.2009 в 10:17
источник
6

Есть два события - SystemEvents.DisplaySettingsChanged и SystemEvents.DisplayedSettingsChanging , которые вы можете обрабатывать. Обратите внимание, что оба события являются статическими, и вам нужно будет отключить обработчики перед выходом из вашей программы.

    
ответ дан Radoslav Hristov 14.01.2009 в 10:23
источник
4

Уверен, что вам не нужно отказаться от подписки на статические события (или любые события), если ваша программа (процесс) умирает. ОС позаботится о том, чтобы освободить всю память вашего процесса в ОС. Однако, если вы подписаны на статическое событие или какое-либо событие, указывающее на объект с более длительным сроком службы, чем ваш подписчик на объект, и вы хотите, чтобы этот объект имел право на GC - вам нужно отказаться от подписки (- =) на событие.

И всегда полезно всегда отказаться от подписки на все события. Вы никогда не знаете, когда срок жизни ваших объектов изменяется (кем-то другим) в течение срока службы вашего исходного кода / продукта ...

    
ответ дан Jan Romell 02.09.2011 в 09:16
источник