Newsgroup: it.comp.lang.visual-basic
Titolo: accedere ad una isatnza di form da un form chiamato dall'istanza stessa

scusate l'oggetto ma non riuscivo a sintetizzare il problema in questione.
il problema è il seguente:
ho creato l'istanza di un form mediante la seguente istruzione
        Dim frm1 As New Form1
frm1 viene poi aperto e dal suo interno carico un altro form chiamato Form2
(di questo non creo un'istanza ma lo chiamo direttamente). a questo punto io
voglio accedere ai controlli, mediante Form2, dpresenti nell'istanza frm1.
volendo ad esempio leggere il contenuto di una textbox presente in frm1,
associo alla pressione di un pulsante la seguente istruzione:
            text1 = frm1.text1           'con text1 contenuta in Form2
se digito questo codice però mi va in errore dicendo che la variabile frm1
non è definita
E' dalle 11 di ieri sera che cerco una soluzione ma non ci riesco....!
--
____________________________
   G 1 0 X®
Web: 
www.giox.net
 'non c'è +!
Alt. Mail: infogiox "mettiL'At" libero.italia
Icq Uin: 47698601
Irc Chan. @azzurranet:
   #mhackerone; #ahccc; #linux;
   #hackers-it; #programmatori
_____________________________

 non è definita
in effetti sembrerebbe che form1 sia privata all'interno della sub/function
nella quale l'hai definita, quindi non è visibile dall'esterno di essa.
Possibili soluzioni:
1) dichiarare frm1 pubblica
2) passare form1 a form2 tramite apposita function/sub/property pubblica di
form2
Salutoni
Sergio

 form2
per chiarezza: errata corrige
 in effetti sembrerebbe che frm1 sia privata all'interno della sub/function
 nella quale l'hai definita, quindi non è visibile dall'esterno di essa.
 Possibili soluzioni:
 1) dichiarare frm1 pubblica
 2) passare frm1 a form2 tramite apposita function/sub/property pubblica di
 form2

 Sergio
Ciao!
grazie per l'aiuto

[CSSoft]
Possibili soluzioni:
1) dichiarare frm1 pubblica
[G 1 0 X®]
 ho provato a fare cosi ma ottengo sempre lo stesso errore:
    Public frm1 As Form1
uhm, parola di boyscout? dove hai fatto questa dichiarazione, all'interno
del codice di una form o in un modulo .bas?
[CSSoft]
2) passare frm1 a form2 tramite apposita function/sub/property pubblica
di  form2
[G 1 0 X®]
 .....la tengo come ultima possibilità, volevo risolvere in modo + semplice.
imho invece è la soluzione migliore, anzi, in questo modo potresti passare a
form2 solo le cose che sono veramente importanti, invece di passare il
riferimento a tutta la form....
Salutoni
Sergio

 voglio accedere ai controlli, mediante Form2, dpresenti nell'istanza frm1.
Queste cose non si fanno!
Gli oggetti chiamati devono essere completamente indipendenti dai chiamanti,
altrimenti finirai con ingarbugliare tutto il codice e perderti rincorrendo
"strani" errori e comportamenti.
Piuttosto definisci medodi o proprietà di Form2 in modo da passare i valori
che ti interessano in variabili private di Form2 stesso.
E poi, metti che domani non vuoi più chiamare Form2 da frm1 ma anche (o
solo) da frm3... che fai? riempi il codice di IF e ON ERROR?
Ciao
--
' // Initialize the expression evaluator
Engines.Evaluator = CreateObject("
http://www.neodatatype.net
")
' // you can find resources for and from the NG here!
Me.SitoComune = "
http://www.it-lang-vb.net
"