Newsgroup: it.comp.lang.visual-basic
Titolo: Modificare un form da un altro form

Salve a tutti,
ho da risolvere questo probleme.
Ho un form di nome Form1 che visualizza dei dati di una tabella di un
DB.
Dal Form1 apro un secondo form di nome Form2 tramite cui modifico i
dati della tabella del db.
Senza chiudere il Form2 come posso fare un refresh del Form1 in modo
da visualizzare i dati modificati?
Grazie
Anluce

 da visualizzare i dati modificati?
Facendo esporre a Form1 un metodo pubblico Refresh(), ad esempio.
-- 
S.


Ipotizzando che il Form2 sia visualizzato come VbModal, basta che dopo
il suo Unload tu ricarichi i dati in Form1 (magari verificando che le
modifiche in Form2 siano state confermate).
Bye by SixaM 8-]

Dopo dura riflessione, Anluce ha scritto :

    Form1.Label1.Caption = "ciao"
    Form1.Refresh
Ovviamente il modo in cui i dati vengono presi dal db lo saprai tu...
Alberto
-- 
Friedrich Nietzsche: Un po' di salute ogni tanto è il miglior rimedio 
per l'ammalato.


Grazie per le risposte.
Ho già provato il refresh ma non funziona.
Il secondo form inoltre non viene aperto in modalità modale.
Ho provato dal secondo form come suggeritomi da Albero semplicemente a
cambiare il testo di una label e poi a fare il refresh,ma niente.
L'unico modo per vedere il nuovo testo in form1 è chiudere e riaprire
form1
Anluce

 form1
Nah, *deve* funzionare.
Come fai ad invocare il refresh da Form2, precisamente?
-- 
S.

 form1
Nego.
Stai sbagliando qualcosa d'altro.
Posta il codice che hai provato e che dici non funzionare.
Alberto
-- 
Il tempo e la pazienza possono più della forza o della rabbia

 Il tempo e la pazienza possono pi della forza o della rabbia
Ciao
ecco il codice che chiamo dal form2. Il form1 è aperto:
            form1.Label12.Text = "ciao"
            'Questa sub carica i valori dal db in un datagrid presente
nel form1 (i valori che ho modificato con il form2)
            form1.riempidettaglio(id)
            form1.Refresh()
Anluce

 da visualizzare i dati modificati?
Sulla form1 crei un metodo RefreshData (Public Sub RefreshData) che
richiami dalla form2, eventualmente con i parametri che ti servono.
[Form1]
Form2.Show
[Form2] (al salvataggio dei dati)
  If DataChanged then Form1.RefreshData
In refresh data ricarichi i dati.
Comunque si potrebbe fare meglio, magari direttamente passando alla form2
una classe con i dati, che quando aggiornati dalla form2 scatenano un
evento "Change" e lì mettere il codice (un po' come potresti fare con una
texbox).
Però pure così funziona.

             form1.Refresh()
Hai provato a fare il refresh del datagrid? Penso sia decisamente meglio 
che fare direttamente il refresh del form.
Io ho provato con due form e una label, e "it works like a charm", come 
direbbero gli anglofoni.
-- 
S.

             form1.Label12.Text = "ciao"
Scusa, ma stiamo parlando di vb6?
Alberto
-- 
La bellezza è opinabile, sulla bruttezza sono tutti d'accordo.

 Scusa, ma stiamo parlando di vb6?
Non credo, altrimenti avrebbe scritto caption e non text.
Ad ogni modo, io la prova l'ho fatta con 
vb.net
 e, ovviamente, funziona.
-- 
S.

 da visualizzare i dati modificati?
Molto meglio se prima refresh il datacontrol che usi, perchè usi il 
datacontrol vero?, oppure il recordet che fornisce dati alla griglia. Il 
refresch del form penso che aggiorni la grasfica dfi form1 ma non vada a 
ripescare i dati dal db. E Form1 mica sarà un mago!
-- 
Greg