form nascosta dietro altre form
-
lunedì 7 maggio 2012 15:56
c'e' un modo per conoscere se una form e' nascosta dietro altre form e' quindi invisibile all'utente? in questo caso la proprieta' Visible e' sempre true. E' per l'applicazione?
grazie
Tutte le risposte
-
lunedì 7 maggio 2012 16:02Postatore
c'e' un modo per conoscere se una form e' nascosta dietro altre form e' quindi invisibile all'utente?
Quindi stai parlando di un'applicazione che apre più finestre non modali contemporaneamente, giusto?
In questo caso, puoi utilizzare le proprietà Size e Location della form per controllare se una è dietro un'altra.
E' per l'applicazione?
Questa domanda non l'ho capita. Puoi spiegare meglio questo punto?
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
lunedì 7 maggio 2012 22:41si esatto piu finestre modali, allora controllero+ le varie posizioni di quelle visibili, per l+applicazione intendevo dire sapere se l+applicazione é visibile all+utente oppure e anche in quessto caso dietro un+altra applicazione, in sostanza poiche´devo mostrare all+utente delle informazioni in una form vorrei essere sicuro che l+utente possa vederle altrimenti potrei visualizzarli nella form senza che siano mostrate perche+ la form e+ nascosta dietro altre form oppure perche+ l+applicazione e+ dietro altre applicazioni
-
lunedì 7 maggio 2012 22:54Postatore
in sostanza poiche´devo mostrare all+utente delle informazioni in una form vorrei essere sicuro che l+utente possa vederle altrimenti potrei visualizzarli nella form senza che siano mostrate perche+ la form e+ nascosta dietro altre form oppure perche+ l+applicazione e+ dietro altre applicazioni
Ti basta richiamare il metodo Activate sull'oggetto Form perché esso venga mostrato davanti a tutte le altre finestre aperte sul desktop: http://msdn.microsoft.com/it-it/library/system.windows.forms.form.activate.aspx.
Ma considera anche questa alternativa. Se il tuo obiettivo è mostrare informazioni all'utente, al verificarsi di determinate condizioni, potresti inserire un'icona nella system tray (a fianco dell'orologio, per intenderci), con il classico fumetto. Così facendo, ad esempio, l'utente potrà fare clic su di esso per aprire l'applicazione.
Questo sistema di notifica è sicuramente meno invasivo rispetto a far apparire all'improvviso una finestra sullo schermo, mentre magari l'utente sta eseguendo altre operazioni.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
martedì 8 maggio 2012 13:03si in effetti e' proprio questa la mia esigenza, pero' in particolare a me interessa sapere se l'utente ha possibilita' di vedere la form, in questo caso visualizza nella form, altrimenti visualizzo la notifica
-
martedì 8 maggio 2012 13:27Postatore
Per sapere se la tua finestra è in primo piano, devi ricorrere alle funzioni dell'API di Windows. In particolare, devi usare GetForegroundWindow, che restituisce l'handle della finestra correntemente attiva: se è uguale all'handle della finestra della tua applicazione, vuol dire che essa è, appunto, in primo piano: http://www.pinvoke.net/default.aspx/user32.getforegroundwindow.
L'handle della tua finestra lo recuperi leggenda la proprietà Handle del form.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva- Contrassegnato come risposta Irina TurcuMicrosoft Contingent Staff, Owner martedì 26 giugno 2012 09:36
-
sabato 26 maggio 2012 18:51Postatore
Ciao!
I suggerimenti che ti ho dato ti sono stati utili? Sei riuscito a risolvere il problema?
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva

