Passaggio di valori tra due form

giovedì 08 marzo 2007 - 16.55

bluland Profilo | Guru

Salve,
ho una form1 con una label ed una form2 con un texbox
aperta la form2 vorrei che il contenuto della texbox attraverso un button fosse il valore che assume label della textbox del form1

ho provato cosi ma evidentemente non ho capito qualcosa:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'istanza di form1
Dim frm1 As New Prova

frm1.Label7.Text = Me.TextBox1.Text
End Sub

qualcuno mi può spiegare come fare?


saluti
--------------------
Vincenzo PESANTE

sanbiz Profilo | Senior Member

>Private Sub Button2_Click(ByVal sender As System.Object, ByVal
>e As System.EventArgs) Handles Button2.Click
>'istanza di form1
>Dim frm1 As New Prova
>
> frm1.Label7.Text = Me.TextBox1.Text
> End Sub

Una curiosità: nel momento in cui fai click su button2 le due form sono già istanziate?
In tal caso la dim frm1 andrebbe a creare un'ulteriore istanza del form Prova

Aggiungi dopo l'istruzione frm1.Label7.Text = Me.TextBox1.Text una frm1.show() e guarda cosa accade (se è corretto quello che dico avrai un nuovo form con i dati che volevi)


--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

alextyx Profilo | Expert

>Salve,
>ho una form1 con una label ed una form2 con un texbox
>aperta la form2 vorrei che il contenuto della texbox attraverso
>un button fosse il valore che assume label della textbox del
>form1
>
>ho provato cosi ma evidentemente non ho capito qualcosa:
>
>Private Sub Button2_Click(ByVal sender As System.Object, ByVal
>e As System.EventArgs) Handles Button2.Click
>'istanza di form1
>Dim frm1 As New Prova
>
> frm1.Label7.Text = Me.TextBox1.Text
> End Sub
>
>qualcuno mi può spiegare come fare?
>
>
>saluti
>--------------------
>Vincenzo PESANTE

Per questo tipo di problemi è importante conoscere anche la versione del SW. VB2005 ha delle istanze di default cui fare riferimento, VB2003 no. Io continuo a non usare le istanze di default, comunque. Presumo (correggimi se sbaglio) che il tuo form1 fosse già aperto, quando a sua volta, è stato aperto Form2, giusto?
Se così non fosse, allora andrebbe bene il tuo codice con la sola aggiunta di un: frm1.show
Se invece è come penso io, allora hai già un form1 aperto, magari è proprio l'oggetto di partenza del progetto. In tal caso crearne una nuova copia, con il metodo costruttore (new) non serve ad arrivare sul form che vuoi raggiungere tu e che è una istanza precedente. Devi riferire proprio il Form che è già aperto (nascosto o meno che sia).
Credo tu possa trovare diverse indicazioni, anche mie, con un po' di ricerca sul forum. Diciamo che hai diverse opzioni, ma che una semplicissima è quella della variabile globale (è la seconda volta oggi che do un consiglio così brutto, ma sono soluzioni poco complicate a spiegarsi). Se in un modulo dichiari una variabile pubblica di tipo form, come: Public F as form
e nell'evento Load di Form1 scrivi: F=Me
Dovresti essere in grado dalla form2 di scrivere: F.label7.text=Me.TextBox1.Text
ecosì agiresti sul form che ti interessa.
Il codice l'ho scritto senza verifica, quindi occhio agli errori di..... stOmpa
Spero che funzioni.....fammi sapere!


Oooops: cross posting!

bluland Profilo | Guru

si infatti è proprio cosi!!
non devo usare New altrimenti si apre un altra istanza, beh mi sa che ho fatto confusioni proprio qui!! infatti funziona!!

--------------------
Vincenzo PESANTE
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5