PDA

View Full Version : [VB.NET] Inviare una variabile ad un nuovo Form


race2
26-06-2003, 12:19
Come posso fare per aprire un Form Figlio all'interno di un Form Padre MdiContainer in modo da passargli una Variabile invece di utilizzare un modulo e dichiarare una variabile Pubblica ???

es:

Dim a As Integer = 1

Dim x As New MyForm()
MyForm.Show()

come posso fare per inviare e raccogliere quella variabile nel "MyForm" ???

tas
26-06-2003, 13:16
Hai due possibilità: un overload del costruttore New oppure un membro o proprietà pubblica.
Nel primo caso la variabile la passi quando instanzi il form:
'nel form figlio MyForm
Private var As Integer

Public Sub New(variabile As Integer)
MyBase.New()
var = variabile
End Sub

'nel form MDI:
Dim f As New MyForm(456) 'passo il valore intero 456

f.MdiParent = Me
f.Show()

Se invece la variabile deve poter essere letta/impostata anche in tempi successivi dalla creazione del form, allora fai così:
'nel form figlio MyForm
Private var As Integer

Public Property Variabile() As Integer
Get
Return var
End Get
Set(ByVal Value As Integer)
var = Value
End Set
End Property

'nel form MDI:
Dim f As New MyForm()

f.MdiParent = Me
f.Variabile = 456
f.Show()

race2
26-06-2003, 13:27
Come ho fatto io e' sbagliato ???

FORM Padre:
---------------------------------------------
Dim x As New Figlio()
x.Visualizza(5)
---------------------------------------------

FORM Figlio:
---------------------------------------------
Public Sub Visualizza(ByVal i As Integer)
Me.Show()
MsgBox(i)
End Sub
---------------------------------------------

apre il Figlio e un MsgBox con il 5 stampato !!!

race2
26-06-2003, 13:34
TROVATO !!!!!!!!

e' il modo perfetto !!!

Definisco un overload per il costruttore di "MyForm" cioe il Figlio,

Public sub new(ByVal MiaVariabile As Integer)
End Sub

Nel Form Padre:

Dim x As New MyForm(5)
x.Show()