Passaggio di dati tra due Form

giovedì 23 marzo 2006 - 18.06

trinity Profilo | Guru

Prima di tutto non ricordo se questo argomento è stato già trattato nel forum e se si potete darmi il link del post?

Comunque mi trovo in una banalissima condizione e pertanto mi sono venuti dei dubbi.....forse il troppo lavoro mi sta fondendo la testa

Vi illustro l'esempio della mia situazione:
abbiamo 2 form, nella prima vi sono delle textbox per l'inserimento dati, nella seconda una semplice listview che carica i dati del db a video....parte la prima form1 e poi successivamente tramite un button apro la seconda tenendo la prima in secondo piano..Nella seconda scelgo il record che desidero riportare e vorrei che la form 2 si chiudesse ed i dati scelti venissero visualizzati nelle textbox della form1.

Vi posto il codice che ho utilizzato, potete dirmi se è corretto e se esiste un metodo molto + efficiente, tenete presente che utilizzo vb net 2005.

Form1:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra




Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

19018 Profilo | Expert

Se usi la versione 2 del framework..questo ti potrebbe aiutare : http://www.dotnethell.it/tips/OpenForms-2.0.aspx
Ciao
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

si ho visto ma non esiste un'altra soluzione con il framework 2.0?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

19018 Profilo | Expert

Non l'ho letto tutto ma credo sia quello che cerchi : http://msdn.microsoft.com/msdnmag/issues/03/07/AdvancedBasics/
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

ho visto ma non mi sembra quello che mi serve; ma scusa in vb net 2005 con il framework 2.0 non si può fare così anche:

form2.textbox1.text=me.textbox1.text ?

strano che non si possa fare...

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

19018 Profilo | Expert

Mi sono ricordato ora...in vb.net 2005 puoi usare :

My.Application.OpenForms.Item("NomeForm").Controls("NomeControllo_o_Indice").Text = "ciao"

E' la versione semplificata di openforms in c#, usi my che ha solo vb.
Ciao!

Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

Ok l'ho provato e funziona!
volevo dirti ma è un procedura standard in vb net 2005 oppure ce ne sono altre?

Comunque grazie mille

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

19018 Profilo | Expert

Più che standard è la più veloce credo!
Ne puoi usare altre ma sono più macchinose, questa è la più immediata!Ciao
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

si ma gli altri metodi sono + effecienti? Oppure cambia solamente il fatto che il codice è + macchinoso.

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

19018 Profilo | Expert

Sinceramente non saprei dirti, bisognerebbe vedere le istruzioni che esegue complessivamente quel comando rispetto agli altri...in genere tanto più una cosa è facile per l'utente, tanto più codice ci sta sotto.
Magari usando comandi più "macchinosi" potresti risparmiare del codice introdotto solo per facilitare la vita all'utente!
Bye bye
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

Senti il passaggio di dati sulle textbox da una form all'altra con il metodo che mi hai postato funziona alla grande...solo che io volevo anche far in modo che oltre al passaggio di dati(che rappresentano uno stato di aggiornamento per il db), il pulsante della prima form che riceve i dati cambiasse il valore della sua text ossia da "salva" venisse variato in "aggiorna" ma non ci riesco come devo fare?

mi spiego meglio..

sulla prima form vi sono elencati in una listview i dati del db, io scelgo un record da modificare e riporto con il metodo che mi hai postato i dati sulle textbox della seconda form per l'aggiornamento. In questa seconda form vi è un ToolStip, la quale ha un pulsante(ToolStripButton1) che serve a confermare le varizioni ed il salvataggio dei dati sul db. in partenza il valore della sua Text è "Salva", ma lo devo variare in "aggiorna" quando la seconda form riceve i dati dalla prima. Ho provato in questo modo:


My.Application.OpenForms.Item("NomeForm").Controls("ToolStripButton1").Text = "Aggiorna"

l'errore che viene generato è: "Riferimento ad un'oggetto non ipostato su un'istanza di oggetto."

ma non mi funziona eppure ero convinto che funzionasse. Dove sbaglio?

Ps con il semplice Button funziona ma a me serve gestire i pulsanti di una ToolStrip

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

19018 Profilo | Expert

Ciao, è normale che ti dia errore!
Non puoi accedere al ToolStripButton1 direttamente, devi prima accedere all'oggetto ToolStrip1 e poi da li al ToolStripButton1.
Recupera un riferimento al ToolStrip1 in questo modo :
Dim rif_ts As Object = My.Application.OpenForms.Item("Form2").Controls.Item("ToolStrip1")
Dim ts As ToolStrip = CType(rif_ts, ToolStrip)
ts.Items("ToolStripButton1").Text = "funziona"


Ciao!
Stefano Passatordi

http://blogs.dotnethell.it/stem/

trinity Profilo | Guru

Ok grazie mille!

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5