Newsgroup: it.comp.lang.visual-basic
Titolo: Iterazione tra form Vb net

Ciao a tutti, premetto che da pochissimo che provo a far qualcosa con Vb 
net, detto cio passo al mio dubbio....
Come posso passare i dati scritti in una textbox piazzata in una windows 
form1 ad una textbox2 messa in una windows form2???
In VB6 avrei fatto cosě:
form2.text2.text = form1.text1.text
ma in VB net .....???????
Cortesemente mi spiegate come fare ? Grazie e saluti 


Se vedi la cosa in senso astratto, quello che fai non e' altro che copiare 
il valore da una variabile ad un'altra; in generale, perche' funzioni, hai 
bisogno semplicemente che le due variabili siano visibili (nello scope) 
dalla funzione che contiene la riga di codice qui sopra.
Ora, in VB6, dove tutte le form sono anche classi ma un po' "speciali", 
esiste sempre una variabile globale autoistanziante per ogni diversa form; 
in 
VB.NET
 invece no, le form vengono considerate classi tali e quali alle 
altre e quindi vanno dichiarate e istanziate dove opportuno... il resto 
viene da se.
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown 

Ciao Luca e grazie del tuo aiuto, ma allora se io con le classi nn me la 
cavo molto bene son fregato ?!!!?...
Non è che mi faresti un esempio ?? Poi da li cercherò di proseguire da solo 
e cerchero in rete qualche tutorial sulle classi (Sigh) 

 da solo e cerchero in rete qualche tutorial sulle classi (Sigh)
Ammesso che tu non abbia usato il wizard di conversione da VB6 a 
VB.NET
 (e 
non l'hai usato, *vero*?), da qualche parte nel tuo codice, per forza di 
cose, devi gia' avere scritto qualcosa del genere, per poter visualizzare la 
seconda finestra:
Dim f2 As New Form2
f2.Show
il punto del messaggio di prima e' semplicemente qui; se tu hai bisogno di 
far riferimento altrove a questa istanza di form2, qui rappresentata dalla 
variabile f2, devi semplicemente fare in modo che la variabile sia visibile 
anche da quel codice, spostando opportunamente la dichiarazione, oppure 
passandola come parametro alle funzioni che ne fanno uso.
Nota che questo non ha a che fare con le classi, ma solo con la visibilita' 
delle variabili in generale; sarebbe stato esattamente lo stesso se avessi 
dovuto lavorare con un intero o una stringa, cosa che avrai fatto mille 
volte... gia' in VB6 per queste ultime eri abituato a dichiararle a livello 
di modulo o globali secondo necessita', mentre per le form avevi a 
disposizione una variabile globale bella e pronta; la differenza e' che ora 
devi trattare le form come hai sempre trattato gli altri tipi di dato.




Dim nextForm As New frmPincoPalla
frmnextForm.Label2.Text = TextBox1.Text
frmnextForm.Show()
---
Matteo 79

 Matteo 79 

 istanza, nn fa riferimento a quella reale
Come gia' spiegato nell'altro messaggio, la soluzione e' tutta nel 
significato che dai a "quella reale"
Che codice hai usato per aprire la tua seconda finestra? Non hai dovuto 
dichiarare una variabile di tipo Form2?


 nn fa riferimento a quella reale
Dato per assunto che non hai capito una pippa di quello che ha spiegato
Luca, cerco di riassumere.
NON ESISTE un'istanza REALE di un form, in quanto Form1 è una classe e non
una variabile.
Per usarla la devi istanziare.
Ti sarebbe più chiaro se anzichè impostare come oggetto di avvio Form1
mettessi la Sub Main (che in .Net sarebbe anche più corretto) in questo
modo:
Public Class Program
    Public Shared Sub Main()
        Dim frmMain As New Form1
        Application.Run(frmMain)
    End Sub
End Class
Detto questo, è un errore grossolano fare riferimento a oggetti della GUI
dall'esterno del contenitore.
Traduco: usare frm1.TextBox1.Text = frm2.TextBox2.Text è proprio un
obbrobio.
Piuttosto definisci un metodo o una proprietà di frm1 a cui passerai il
valore.
Sarebbe anche interessante sapere se quella riga di codice è chiamata da
Form1 o da Form2, perchè sono fiducioso nel credere che NON usi dei moduli,
vero? (in .Net non si fa!)
Ciao
-- 
NeoDataType : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

> Grazie del suggerimnto ma cosi nn funziona, xchè mi apre una nuova
Solo per ricordarti che esistono i termini "iterazione" (esecuzione di
un ciclo) e "interazione" (reciproco rapporto fra due o più
oggetti/soggetti)
=======================================================================
Se mi vuoi scrivere togli le maiuscole
Sveltolampo 
cteniza...@hotmail.com
=======================================================================

 oggetti/soggetti)
Ce l'hai con me?


Ciao
Ciao, 
Assolutamente no non ce l'ho con te, infatti ho tolto (spero
interamente) la tua risposta, volevo solo aggiungere un commento
all'oggetto contenente un errore che ho visto passare inosservato.
Se ti ho offeso (e/o se ho offeso qualcuno) chiedo scusa.


 Se ti ho offeso (e/o se ho offeso qualcuno) chiedo scusa.
No, solo che potevi rispondere al post giusto e non al mio ;)


Ciao a tutti e grazie delle risposte che mi avete dato.  ^__^
Anzi nn pensavo affatto di averne tante, comunque qualcosa in piu l'ho 
capita e sono riuscito ad ottenere cio che volevo.
Luca, tu involontariamente (xchè io nn sapevo neanche del wizard .. ripeto 
sono pochi gg che cerco di imparare VB net) mi hai dato un suggerimento
Ho creato la stessa situazione in VB6 l'ho fatta convertire da VB net ed ho 
cercato di capire (usando il debug) cosa fa.
quindi ho tradotto cosi .....(ti incollo la parte che volevi sapere)
#Region "area Pubblica"
Public Shared miaFrm As Form1
#End Region
#Region " Codice generato da Progettazione Windows Form "
Public Sub New()
MyBase.New()
'Variabile Globale per la FORM1
'***************************************************
miaFrm = Me
'***************************************************
'Chiamata richiesta da Progettazione Windows Form.
InitializeComponent()
anche se, certamente per sicurezza, sarebbe meglio utilizzare il codice 
sottostante che è più consono alle Classi
Public Shared Property IstanzaFrm1() As Form1
 Get
 If miaFrm Is Nothing OrElse miaFrm.IsDisposed Then
 miaFrm = New Form1()
 End If
 IstanzaFrm1= miaFrm
 End Get
 Set(ByVal Value As Form1)
 IstanzaFrm1= Value
 End Set
End Property
Comunque ragazzi vi ringrazio tantissimo 

 End Property
Questo è quello che serve per l'uso di Form1 come oggetto Singleton, che
probabilmente in questo caso è quello che volevi ottenere tu, ma non è certo
l'uso normale (ne il più chiaro) di una classe Form.




scusa solo 
nextForm.Label2.Text = TextBox1.Text
nextForm.Show()
senza il frm davanti
---
Matteo 79