Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260

    [c#] catturare evento perdita focus finestra

    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

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    gestisci l'evento lostFocus

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260
    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


    codice:
    this.LostFocus += new System.EventHandler(this.MenuActivo_LostFocus);
    ma mi cattura l'evento solo quando minimizzo la finestra principale nella barra sotto...

    cosa sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260
    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??

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260
    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?

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    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


  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    260
    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 ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.