Passarrio valori tra form

martedì 23 febbraio 2010 - 22.28

lanfra Profilo | Senior Member

Salve, piccolo cruccio, stò impostando una finestra di "Opzioni" della mia applicazione, dopo aver impostato le opzioni e chiuso la finestra, le opzioni devono essere riportate sulla mia form Main, ma non riesco a passare i valori da una form all'altra. Posto il codice presente sulla form fOpzioni, che deve valorizzare i controlli presenti sulla form chiamante Form1

Dim CB_PREFISSO_M As Object = My.Application.OpenForms.Item("Form1").Controls("CB_PREFISSO") Dim IDL_PREFISSO As Label = My.Application.OpenForms.Item("Form1").Controls("IDL_PREFISSO") If CB_PREFISSO.Checked Then CB_PREFISSO_M.Checked = True IDL_PREFISSO.Text = IDE_PREFISSO.Text Else CB_PREFISSO_M.Checked = False IDL_PREFISSO.Text = "" End If

questo è l'errore, ma ...

402x233 282Kb

Ma posso usare NEW???
Non sbaglio qualcosina???



Lanfra

alexmed Profilo | Guru

Ciao
Una soluzione è quella di dichiarare Public le variabili nella Form1 per poi valorizzarle in frmOption
Quindi:

>Form1

Public Class Form1

Public mia_var As String = "Hello Word"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
frmOption.ShowDialog()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MsgBox(mia_var)
End Sub
End Class


>frmOption

Public Class frmOption

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(Form1.mia_var)
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Form1.mia_var = TextBox1.Text
End Sub
End Class


Ciao

alexmed

lanfra Profilo | Senior Member

Grazie per aver risposto
E' vero, stasera ci provo, questo è l'unico modo? Fare variabili pubbliche?

Ho provato ed ho notato che basta indicare la classe della form e poi vedo i suoi controlli.
Grazie

Earthquake Profilo | Junior Member

Ciao,
no, non è l'unico modo, e poi usare variabili pubbliche è un po "rischioso" meglio usare le property.

Esempio:
Public Class Form1

Private MiaVar as string '(Qui puoi cambiare il tipo ovviamente)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
frmOption.ShowDialog()
MiaVar= frmOption.ReturnValue
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MsgBox(MiaVar)
End Sub


End Class
------------------------
Public Class frmOption
Private _retval As String
Public Property ReturnValue() As String
Get
Return _retval
End Get
Set(ByVal value As String)
_retval = value
End Set
End Property
Private sub MieOperazioni()
.....
.....
.....
ReturnValue="Valore di ritorno" (ovviamente da sostituire con quello che ti serve)
end sub
End Class

Spero di essere stato chiaro.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5