Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] Parliamoci da Form a Form...

Salve, bella gente!!!
Ho scritto una funzione in un form, che devo usare in un altro form...
Ho guardato su vari forum e newsletter il da farsi...
Ma non mi viene...
So che devo dichiarare un istanza del form su cui risiede la funzione...
Ma non so come collegargliela...
io faccio:
Dim Seriale as new form()
Seriale=frmserial
Pippo=seriale.funzione(Pluto,Paperino)
So che è sbagliata, ma non so come correggerla...
Mi date una mano, por favor???

 ha scritto nel messaggio
news:DNM2a.176207$0v.48...@news1.tin.it...

Prova con
Dim Seriale as form()
Seriale=new frmserial
Pippo=seriale.funzione(Pluto,Paperino)
o meglio ancora
Dim Seriale as new frmserial
Pippo=seriale.funzione(Pluto,Paperino)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown


prova con
dim Seriale as new frmSerial()
pippo = seriale.funzione(pluto, paperino)
--
Salutoni
Sergio

Ancora meglio, sposta la funzione dal
form specifico in un modulo comune ed
accedi da entrambi alla stessa routine.
Ciao
Andrea

 accedi da entrambi alla stessa routine.
Oppureanche definirlo come membro shared di una classe
--
Salutoni
Sergio

 ha scritto nel messaggio
news:b2gcu0$1ceil4$1...@ID-173193.news.dfncis.de...


 ha scritto nel messaggio
news:b2gcu0$1ceil4$1...@ID-173193.news.dfncis.de...

Vale la pena ricordare che una form e' gia' una classe, derivata da
System.Windows.Forms.Form, cosi' come un modulo e' in realta' una classe
shared; quindi e' perfettamente valido e altrettanto pulito lasciarlo nella
form, come voleva fare Alessandro... la scelta a questo punto dipende solo
dal contesto su cui deve lavorare la funzione: se deve passare un qualche
parametro che serve alla form stessa, sta bene li, se e' del tutto neutra
puo' andare in una classe a se...


 wrote in message
news:uRO2a.176871$0v.48...@news1.tin.it...


Solo un appunto: se il metodo puo' valere per piu' form,
secondo me e' piu' giusto dagli il form come parametro.
Ciao
Andrea

 ha scritto nel messaggio
news:b2id51$1dib2f$1...@ID-170738.news.dfncis.de...


 Ma non è il contrario??? ;)
E' solo un problema di struttura.
Mettiamo tu voglia fare una routine che fa diventare tutti i textbox della
tua frmSerial di un determinato colore; puoi pensarlo come un metodo della
classe frmSerial e definirlo come
Public Sub ColorMeBarbra(ByVal aColor As Color)
    'per chi ha visto di recente "In & Out" :-)
    Dim c As Control
    For Each c In Me.Controls
        If TypeOf c Is TextBox Then c.BackColor = aColor
    Next
End Sub
e chiamarlo con
Dim f As Form2 = New Form2()
f.ColorMeBarbra(Color.Azure)
f.Show()
oppure puoi pensarlo come una funzione piu' generica, che prende in input
una generica form, e applica la stessa elaborazione... a questo punto lo
dichiari in una classe generale come
Public Sub ColorMeBarbra(ByRef aForm As Form, ByVal aColor As Color)
    Dim c As Control
    For Each c In aForm.Controls
        If TypeOf c Is TextBox Then c.BackColor = aColor
    Next
End Sub
e lo chiami con
Dim f As Form2 = New Form2()
ColorMeBarbra(DirectCast(f, Form), Color.Azure)
f.Show()
oppure
'dichiarandolo come classe base Form possiamo evitare il cast
Dim f As Form = New Form2()
ColorMeBarbra(f, Color.Azure)
f.Show()
E' soltanto una scelta funzionale e, se vuoi, estetica; se la routine che
avevi in mente e' fortemente legata a elementi di frmSerial, o serve a
passere parametri che verranno processati solo dalla form stessa, allora
"suona" meglio definirla come suo metodo, se viceversa e' qualcosa di piu'
neutro, allora puoi fare una funzione piu' generica e aggiungere il
parametro che indica la form da considerare... tieni conto anche che la
prima soluzione e' leggermente piu' performante
