Ho questa applicazione Windows Form dove si trova nell'area di notifica. Se fai clic sull'icona, questo viene visualizzato in primo piano, facendo nuovamente clic (o facendo clic sull'icona X dell'app) lo rimanda. Questo è il tipo di app che ha sempre la finestra sempre in primo piano quando viene visualizzata facendo clic sull'icona (è opzionale).Bug davvero fastidioso con la proprietà TopMost in Windows Form
Facendo clic con il pulsante destro del mouse sull'icona viene visualizzato un menu di scelta rapida in cui è possibile selezionare per abilitare o meno l'opzione "sempre in primo piano". Quando l'applicazione si avvia per la prima volta, le impostazioni dell'app vengono lette da un file XML e io sono al 99% che questo funziona come dovrebbe, la proprietà TopMost
viene letta correttamente (e scritta).
Dopo un po 'di tempo (minuti, ore, giorni, qualsiasi cosa, di solito si iberna e si spegne raramente) il TopMost
smette di funzionare. Non cambio l'opzione, non penso che nulla stia cambiando il valore dell'opzione, ma faccio clic sull'icona dell'area di notifica e l'app non viene visualizzata in anticipo. Si presenta ma è sullo sfondo (viene visualizzato in Alt + Tab), non è "sempre in primo piano" come dovrebbe. Espongo il menu di scelta rapida, disattivo l'opzione (perché è abilitata) e la riabilita e dopo questo inizia a funzionare. L'app è ora "sempre in primo piano". Tuttavia, può perdere questa abilità in qualsiasi momento dopo un po '.
Non riesco a capire perché questo accada e come ciò accada. Qualcuno ha qualche idea del perché? In caso negativo, qualche idea su come potrei provare a eseguire il debug di questo comportamento?
EDIT:
ho aggiunto un pezzo di codice per mostrare un MessageBox quando la proprietà TopMost
è stato cambiato per vedere se ho potuto notare un comportamento strano, ma è stato inutile. Non ha aiutato perché il modulo era con TopMost = true
ma era ancora in background ...
So che la mia app non è l'unica finestra in alto, ma cose come Windows Explorer, Firefox e cose simili NON sono le più alte e la mia finestra dovrebbe essere in cima a quelle. Che non sta succedendo a causa di questo problema tecnico. Disabilito e riattivano l'opzione e le si posiziona sopra come dovrebbe. –
E non penso che l'ibernazione sia il problema. Ho appena fatto un test rapido e ho ibernato la macchina con Explorer e Firefox aperti. Dopo averlo ripristinato, la mia app è ancora in primo piano.Deve succedere in una situazione diversa ... –
Hai provato la soluzione che ho suggerito? (dopo aver mostrato la finestra, ripristinare e impostare la proprietà "topmost") – peterchen