Pre .net Stavo usando MFC, ON_UPDATE_COMMAND_UI e la classe CCmdUI per aggiornare lo stato dell'interfaccia utente di Windows. dal precedente riferimento MFC/Win32:Aggiornamento degli oggetti dell'interfaccia utente nei moduli di Windows
In genere, le voci di menu e i pulsanti della barra degli strumenti hanno più di uno stato. Per esempio , una voce di menu è grigiata (in grigio) se non è disponibile nel contesto attuale . Le voci di menu possono anche essere selezionate o deselezionate . Un pulsante della barra degli strumenti può anche essere disattivato se non è disponibile o può essere controllato.
Chi aggiorna lo stato di questi articoli mentre le condizioni del programma cambiano? Logicamente, se una voce di menu genera un comando gestito da, ad esempio, un documento , è opportuno che il documento aggiorni la voce di menu. Il documento contiene probabilmente le informazioni su cui è basato l'aggiornamento .
Se un comando ha più oggetti dell'interfaccia utente (forse una voce di menu e un pulsante della barra degli strumenti), entrambi sono instradato verso la stessa funzione del gestore. Questo incapsula il codice di aggiornamento dell'interfaccia utente per tutti gli oggetti dell'interfaccia utente equivalenti in una singola posizione .
Il framework fornisce una comoda interfaccia per l'aggiornamento automatico degli oggetti dell'interfaccia utente . È possibile scegliere per eseguire l'aggiornamento in altro modo, ma l'interfaccia fornita è efficiente e facile da usare.
Qual è la guida per .net Windows Forms? Sto usando un gestore di Application.Idle nel modulo principale ma non sono sicuro che questo sia il modo migliore per farlo. Più o meno nel tempo in cui ho messo tutti gli aggiornamenti UI nel gestore eventi Idle, la mia app ha iniziato a mostrare alcuni problemi di prestazioni e non ho ancora le metriche per rintracciarlo. Non sono sicuro se è correlato.
Che cosa stai cercando di fare di nuovo? Stai cercando di disabilitare i controlli sulle applicazioni WinForms? –
Disattiva/attiva pulsanti della barra degli strumenti, voci di menu, ecc. Seleziona/deseleziona lo stato dei pulsanti di controllo sulla barra degli strumenti, voci di menu che mostrano uno stato di controllo. Questo genere di cose. Roba molto di routine. –
Sì, Application.Idle. Come si può avere un problema di perf quando l'app è inattiva è misteriosa. –