Ciao a tutti.
Ho la necessità di eseguire una particolare operazione quando viene perso il focus della mia finestra.
Se tipo la mia finestra passa in secondo piano, voglio che accada qualcosa alla mia applicazione....
Come posso fare?
grazie 1000
Ciao a tutti.
Ho la necessità di eseguire una particolare operazione quando viene perso il focus della mia finestra.
Se tipo la mia finestra passa in secondo piano, voglio che accada qualcosa alla mia applicazione....
Come posso fare?
grazie 1000
ho inserito:
nella mia form.cs
codice://Perdita del focus private void MenuActivo_LostFocus(object sender, EventArgs e) { //MessageBox.Show("focus_perso", "info", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Console.WriteLine("perso focus"); }
nel mio form.designer.cs
ma mi cattura l'evento solo quando minimizzo la finestra principale nella barra sotto...codice:this.LostFocus += new System.EventHandler(this.MenuActivo_LostFocus);
cosa sbaglio?
inoltre ho appena scoperto che "perdo il focus" anche quando compare nella mia applicazione una finestra di dialogo, le classiche dialogBox per intenderci....
io invece volevo che tale evento venisse scatenato ogniqualvolta la mia finestra principale del programma andasse dietro alla finestra di un altro programma qualsiasi ...
qualche idea??
ora sto usando l'evento Form.Deactivate per vedere quando perdo il focus che funziona in tutti i casi di cui ho bisogno, meglio del LostFocus.
Purtroppo rimane il problema che ogni finestra di dialogo che il mio programma apre, faccia perdere il focus al form principale, mentre vorrei che fossero gli altri programmi che girano a far perdere il focus...
qualche soluzione?
Teoricamente dovrebbe funzionare:
1) crea una variabile booleana a livello di form che userai come un flag.
2) quando sei tu ad aprire una finestra di dialogo, imposti il flag a True.
3) nell'evento Deactivate, o LostFocus, prima verifichi questo flag, e fai eseguire il codice solo se è False.
4) infine, nell'evento Activate del form imposti il flag a False
![]()
grazie Gibra ... avevo pensato pure io a questo ... ora mi devo mettere di gran volontà a fare questa operazione per tutte le finestre di dialogo che fa apparire il mio programma ...![]()