Newsgroup: it.comp.lang.visual-basic
Titolo: Load Form!

 detto che io debba fare il fiorista....  [Morgan]  <
Visitate il mio sito:
http://digilander.iol.it/Superpork

 ha scritto nel messaggio
news:8ne5o6$42f$1...@pegasus.tiscalinet.it...


la prima volta ....  ^__^
Falso! Falsissimo! :)
A quel punto è già tutto finito!
O meglio, non è detto... sono due cose ben separate e da non confondere (è
per questo che si continuano ad avere post che chiedono come mai la SetFocus
nell'evento Load produce un errore o simili).
Ciao

 wrote in message 8nejgs$6h3$1...@nslave1.tin.it...

 ha scritto nel messaggio
news:8neqbk$56q$1...@lacerta.tiscalinet.it...


Scusate ma non ci ho capito granché delle vostre spiegazioni!
Dài, è facile :)
lo sai un po' di inglese?
Load (carica) : carica un oggetto in memoria e di conseguenza scatena
l'evento _Load, ma non fa niente altro!
Show (mostra) : rende visibile un oggetto, equivale a Visible = True.
    Come detto dall'help, in questo caso, "Se il form specificato non è
caricato quando viene richiamato il metodo Show, verrà caricato
automaticamente." e quindi farebbe un "Load Form1" implicito con tutto
quello che ne consegue.
    Questo vale per qualsiasi membro (metodo o proprietà [o altro]) di
Form1: se form1 non è caricato e fai Form1.Caption = "pippo" VB esegue un
Load Form1 implicito.
    Una volta caricato in memoria Form1 non richiamerà più Form_Load (e come
potrebbe? mica deve ricaricarsi, c'è già!), a meno che tu non lo scarichi
esplicitamente con Unload Form1.
    Attenzione, questa volta Form1.Hide NON scarica il form, ma si limita a
nasconderlo, per le proprietà viste sopra. Infatti anche Form1.Hide carica
il form in memoria se non lo è già.
Tutto chiaro?
Quindi tu puoi mettere tutto quello che vuoi nel Form_Load (ed è giusto che
tu faccia così), basta che poi ti ricordi di fare un Unload Form1.
Attenzione: se chiudi il form ad esempio premendo sulla "x" avviene l'unload
automaticamente, quindi se dopo fai un Unload Form1 succede che (avendo
richiamato Form1 che è stato scaricato) avrai un implicito Load Form1 e poi
lo scaricamento dello stesso.
Adesso si che dev'essere chiaro... :)
Ci sono ancora un paio di condizioni ma forse è meglio rimandare.
Ciao

Aspetta....
Abbiamo:
FormX.Initialize,
FormX.Load,
FormX.Activate
...e soprassediamo su FormX.Paint, .GetFocus ecc.
Ti conviene agire cosi' secondo me:
FormX.Initialize
Si genera solo quando la carichi la prima volta
  metti solo eventuali inizializzazioni di variabili, senza
riferimenti a controlli presenti sul form
FormX.Load
Si genera solo quando la carichi, dopo Initialize
Ci sono gia' i controlli, puoi ridimensionarli /posizionarli
ma non puoi usarli con SetFocus perche' non sono
ancora visibili
FormX.Activate
Si genera ogni volta che la form viene resa attiva.
Puoi anche modificare l'aspetto dei controlli e le
varie labels nonche' posizionarti con SetFocus.
Allora per concludere:
Nel tuo prog, all'inizio fai un Load FormX (la form NON
verra' visualizzata, ma verra' caricata, secondo quanto hai
indicato in .Initialize e .Load
Ogni volta che ti serve fai un
FormX.show
E nella form verra' eseguito cio' che avrai messo nell'evento
Activate.
Quando la FormX non ti serve piu', lei stessa puo' fare
Me.Hide oppure FormX.Hide (la form scompare ma non
viene scaricata)
Attenzione se fai    Unload FormX   questa viene scaricata e
la volta successiva viene richiamato FormX.Load
Lo so che e' un casino, ma funziona cosi' e per fortuna....
Ciao
--
Frogman
indirizzo e-mail corretto: 
be...@reboot.to