Rileva il cambiamento di risoluzione c # WinForms

c‘è un modo semplice per agganciare a un evento che viene triggersto al cambiamento della risoluzione dello schermo globale?

Gestire il seguente evento:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged 

È ansible fare riferimento a questa pagina per ulteriori dettagli.

Si potrebbe anche voler vedere l’ articolo di msdn sulla class SystemEvents.

Ci sono due eventi: SystemEvents.DisplaySettingsChanged e SystemEvents.DisplayedSettingsChanging che puoi gestire. Nota che entrambi gli eventi sono statici e dovrai scolbind i gestori prima di uscire dal tuo programma.

Certo, non è necessario annullare l’iscrizione a eventi statici (o eventi) se il tuo programma (processo) sta morendo. Il sistema operativo si prenderà cura di rilasciare tutta la memoria del processo al sistema operativo. Tuttavia, se ti iscrivi a un evento statico oa un evento che punta a un object con una durata maggiore rispetto all’object che sottoscrivi e desideri che l’object sia idoneo per GC, devi annullare l’iscrizione (- =) all’evento.

E è sempre buona norma disiscriversi sempre a tutti gli eventi. Non sai mai quando la vita dei tuoi oggetti è cambiata (da qualcun altro) durante la vita del tuo codice sorgente / prodotto …

prova questo semplice codice

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

e non dimenticare questa linea using Microsoft.Win32;