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

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

Обращайтесь к следующему событию:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged 

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

Вы также можете посмотреть статью msdn в classе SystemEvents.

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

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

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

попробуйте этот простой код

 using Microsoft.Win32; SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged); static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) { MessageBox.Show("Resolution Change."); } 

и не забывайте эту строку, using Microsoft.Win32;

  • Свойство ContextMenuStrip.Owner null При извлечении из вложенного ToolStripMenuItem
  • C # WinForms отключает масштабирование DPI
  • Причины того, почему лейбл WinForms не хочет быть прозрачным?
  • Показать свойства навигационного свойства в DataGridView (свойства второго уровня)
  • Передача значений между Windows Forms c #
  • Ribbon UI Control для WinForms
  • В чем разница между Application.Run () и Form.ShowDialog ()?
  • Пользовательские заголовки / хром в приложении WinForms
  • Самая верхняя форма, нажатие «через» возможно?
  • Могу ли я разместить Windows Form внутри элемента управления
  • Как создать 5 кнопок и назначить отдельные события кликов динамически?
  • Давайте будем гением компьютера.