Newsgroup: it.comp.lang.visual-basic
Titolo: form che non si vede

ho scaricato dal web un vbp con una semplice routine per cercare un file
nell' HD
il form ha due text box in cui inserire la partizione ed il file da cercare, 
una list per i risultati
ed un commandbutton per lanciare l' avvio
tutto funziona perfettamente... e lanciando la ricerca il form resta
perfettamente visibile
servendomi solo la routine per cercare uno specifico file e salvare il
risultato della ricerca in un un file .ini, ho tolto le textbox e il
commandbutton, inserendo solo una label che informa della ricerca....
lanciando il codice, tutto funziona perfettamente......... ma il form non si
vede!
se come prima istruzione della sub form_load metto
 me.show
il form si vede e non si vede, semitrasparente, la label resta invisibile...
come mai? tutto sommato il codice è lo stesso del form iniziale,
fondamentalmente manca solo il commandbutton
come posso fare per far vedere il form?

 come posso fare per far vedere il form?
Sicuro che il form, al termine del suo lavoro, non appaia?
Se così fosse (a parte che avresti omesso una informazione 
fondamentale), forse potrebbe bastare qualche form.refresh o 
label.refresh qua e là (magari non ad ogni giro, altrimenti ti rallenta 
troppo...).
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 Ciao
si, scusa, forse non mi son spiegato bene
certamente che al termine del lavoro il form appare... è durante il lavoro 
che non appare, e non capisco perché, datosi che il form.visible è settato 
su true
è come se la routine di ricerca "succhiasse energia"  al form, rendendolo 
semivisibile... ma allora mi chiedo: perchè lanciando la stessa identica 
routine da un command button il form non scompare??
è per cercare di capire... 

risolto con uno squallidissimo controllo timer: la subroutine di ricerca, 
invece che essere richiamata da form_load vierne richiamata dal _Timer...
comunque continuo a non spiegarmi il perché del form che nel primo caso non 
appare: inserendo come prima istruzione me.show non dovrebbe apparire anche 
se dopo, prima di finire la routine _load, esegue una lunga ricerca??


Hai provato a mettere un DoEvents()  ?
Magari dopo un  .refresh
--
ciao
  Stefano

 Magari dopo un  .refresh
evvai... inserendo un DoEvents nella Function di ricerca come per magia il 
form appare....
non capisco perché non č stato previsto nell' esempio di partenza
.. comunque, avendo tolto il commandbutton non ci sono eventi che possono 
disturbare il complesso codice di ricerca durante l' esecuzione ( penso 
immagino e suppongo... o no)?
grz, un timer in meno

Il 30/01/2006, phil ha detto :

Ti manca tutto il giro degli eventi.
La visualizzazione delle finestre (e sia le form che i singoli 
controlli sono 'finestre') è un compito del sistema operativo.
Ciò che tu metti visibile, forzi con .Show, ecc..., non è altro che 
preparare una 'tabella' di ciò che il S.O. dovrà visualizzare, quando 
ne avrà la possibilità.
Ma finchè non arrivi a 'End Sub', il controllo su quelle finestre non 
viene MAI lasciato al sistema operativo.
Esiste però una istruzione, ossia DoEvents, che dice a VB di dare al SO 
il controllo affinchè questo possa gestire gli eventi accodati, fra cui 
anche le visualizzazioni.
Anzichè DoEvents, che è molto pesante e presenta altri rischi, puoi 
chiedere la gestione grafica di un singolo controllo, con il metodo 
Refresh del controllo stesso.
