Newsgroup: it.comp.lang.visual-basic
Titolo: VB2008 Form SEMPRE in primo piano

Non riesco a mantenere una form sempre in primo piano
(come il task manager per intendersi) : TopMost è settato
su true, ma non appena faccio "mostra desktop" scompare.
Qualche suggerimento? 

 Qualche suggerimento?
"mostra desktop" non porta in secondo piano, ma minimizza.
Alberto

 "mostra desktop" non porta in secondo piano, ma minimizza.
Grazie per la puntualizzazione.
Allora dovrei evitare che
"mostra desktop" minimizzi la mia applicazione...
Qualche suggerimento? 

 "mostra desktop" minimizzi la mia applicazione...
Io non ti so aiutare, però ti dico solo che una applicazione così non la 
vorrei :-)
Se il tuo intento è realizzare una applicazione tipo chiosco, credo che 
la cosa sia molto più complessa, e ti conviene cercare tecniche specifiche.
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto più di semplici 
FAQ! 
http://it.openoffice.org/doc/manuali/

 cosa sia molto più complessa, e ti conviene cercare tecniche specifiche.
è che ho semplicemente realizzato un orologio che si sovrappone
a quello di windows nella barra di avvio...volevo tenerlo sempre
"on top"... tutto qua
che sarebbe un'applicazione tipo chiosco...? 

Se pu� servire anche ad altri :
in un Timer impostato a 10ms (con valori pi� alti sfarfallava)
ho inserito :
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Timer2.Tick
        Me.TopMost = True
        If Me.WindowState = FormWindowState.Minimized Then Me.WindowState = 
FormWindowState.Normal
    End Sub
non so se � la soluzione piu elegante...ma sembra andare bene.
ciao
 

 Qualche suggerimento?
Niente timer o subclass o altro, in teoria sarebbe sufficiente 
Form.TopMost=True.
Per� devi disabilitare l'application framework nelle propriet� del progetto, 
se no non funziona!
Bye
Raf
 

 progetto, se no non funziona!
In teoria forse si,ma in pratica no.
Appena perde il focus, mi va sotto la
barra d'avvio di win 

 "on top"... tutto qua
C'è un'applicazione che si chiama TClock o TClock2 che fa quello che dici
(sostituisce l'orologio di win), guarda se è open source per guardare i
sorgenti.

 ha scritto nel messaggio 
news:4c11f013$0$31378$4faf...@reader1.news.tin.it...

Allora il problema non è avere una finestra sempre topmost anche quando si 
mostra il desktop, quanto il fatto che devi "ancorare" la tua finestra alla 
barra delle applicazioni (che è una finestra speciale), il che è tutt'altra 
cosa.
Quindi o usi il trucchetto di risettare TopMost ogni tot millisecondi, 
oppure devi avventurarti in territori non molto agevoli (vedi il 
suggerimento che ti ha dato Andrea, che è sviluppato in VC++).
Bye
Raf
 

 sorgenti.
oky grazie
 

 suggerimento che ti ha dato Andrea, che č sviluppato in VC++).
Come ho postato prima:
" Se puň servire anche ad altri :
in un Timer impostato a 10ms (con valori piů alti sfarfallava)
ho inserito :
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer2.Tick
        Me.TopMost = True
        If Me.WindowState = FormWindowState.Minimized Then Me.WindowState =
FormWindowState.Normal
    End Sub
non so se č la soluzione piu elegante...ma sembra andare bene.
ciao "
 

 sorgenti.
il mio progettino è molto piu bello : orologino analogico  personalizzabile 
+ data accanto... 

 ha scritto nel messaggionews:4c11f013$0$31378$4faf...@reader1.news.tin.it...
siccome in net è mooooolto meno pericoloso!
Subclassare la form per intercettare il minimize e non farlo
scattare...o fargli fare altro?

 ha scritto nel messaggio 
news:8853d17a-ce0d-4f35...@j8g2000yqd.googlegroups.com...

Fosse così come dici sarebbe estremamente facile.
Il problema non è intercettare la minimizzazione della finestra ma la sua 
"copertura" da parte della taskbar, cosa per cui non sembra esistere un 
messaggio adeguato da intercettare nella WndProc (o per lo meno non sono 
riuscito a trovarlo).
Ciao