Eso ya te lo respondí
más arriba. Los pasos serían:
1) Creas variables locales en el formulario destino (son Private)
2)
Agregas a ese formulario
propiedades públicas para escribir y leer esos valores desde afuera.
3) Le
agregas en el evento de cierre del formulario destino, que el mismo
cambie su propiedad DialogResult a OK o Cancel, según el resultado deseado.
4) En la invocación a ese formulario lo llamas usando el método
ShowDialog, eso hará que el control del proceso pase al formulario invocado.
5)
Cuando se cierre ese formulario, el control del proceso volverá a la línea siguiente al ShowDialog, pero como el objeto que contiene esa ventana
aun existe, puedes consultar cual es su propiedad DialogResult y si es OK,
sacas los valores obtenidos en ese formulario por medio de las propiedades que le creaste adentro.
Eso es lo que explicaba en ese post. Intenta hacerlo.
Al menos intentalo una vez.
Esa es una forma de programar que respeta el paradigma de Orientación a Objetos..., y por consecuencia desperdicia menos memoria y es más segura.
Cita: y en caso de que sean MUCHOS valores?
En el caso que sean muchos valores tienes dos herramientas: Una fundamenta y otra opcional:
La primera es
paciencia. Si no tienes paciencia, no te dediques al desarrollo de software.
La programación requiere mucho tiempo de desarrollo y no hay atajos si quieres hacer bien las cosas. Si tienes que escribir 12.000 líneas de código, no hay forma de evitarlo. Tendrás que escribirlas una a una y con mucha paciencia.
Yo he tenido, en ocasiones, que tirar formularios completos y clases enteras ya terminadas y probadas, simplemente porque me cambiaron un requerimiento del soft, o por darme cuenta que simplemente estaban mal planteadas y que estaba perdiendo tiempo poniendoles parches, en lugar de comenzar desde cero todo de nuevo, lo que me iba a llevar menos tiempo que debuggear malos arreglos.
La otra herramienta es la
creatividad. En ocasiones todo se resume a saber cómo empaquetar los datos en objetos más complejos para no tener que hacer mcuhas propiedades.
Un objeto de una clase creada, por ejemplo, que hacer veinte propiedades.
Si tuvieses una clase Cliente, creas entonces una Propiedad ClienteNuevo donde pasas una instancia de ese objeto, y la cargas dentro del formulario hijo. Cuando retomas ese objeto desde afuera, ya viene con todos los datos...
¿Sencillo, ¿no?
Código vb.net:
Ver originalPublic Property ClienteNuevo() As Cliente
Get
Return varCliente ' varCliente es una variable local de clase Cliente en el form
End Get
Set(ByVal Value As Cliente)
varCliente = Value
End Set
End Property
Ejemplo de una clase llamada Cliente:
Código vb.net:
Ver originalImports Microsoft.VisualBasic
Imports Microsoft.Win32
Public Class Cliente
Inherits Object
#Region " Área de variables"
Private apellidoCliente As String
Private calle As String
Private ciudad As String
Private condIva As Int16
Private cPostal As String
Private cuit As String
Private dpto As String
Private nombreCliente As String
Private nroCliente As Integer
Private nroDomicilio As Integer
Private oEMail As String
Private piso As Integer
Private provincia As String
Private razon_Social As String
Private telefono As String
#Region " Área de propiedades"
Public Property Iva() As Int16
Get
Return condIva
End Get
Set(ByVal Value As Int16)
condIva = Value
End Set
End Property
Public Property NumCliente() As Integer
Get
Return nroCliente
End Get
Set(ByVal Value As Integer)
nroCliente = Value
End Set
End Property
Public Property NomCliente() As String
Get
Return nombreCliente
End Get
Set(ByVal Value As String)
nombreCliente = Value
End Set
End Property
Public Property ApeCliente() As String
Get
Return apellidoCliente
End Get
Set(ByVal Value As String)
apellidoCliente = Value
End Set
End Property
Public Property CuitCliente() As String
Get
Return cuit
End Get
Set(ByVal Value As String)
cuit = Value
End Set
End Property
Public Property TelCliente() As String
Get
Return telefono
End Get
Set(ByVal Value As String)
telefono = Value
End Set
End Property
Public Property CalleCliente() As String
Get
Return calle
End Get
Set(ByVal Value As String)
calle = Value
End Set
End Property
Public Property NroDomCliente() As Integer
Get
Return nroDomicilio
End Get
Set(ByVal Value As Integer)
nroDomicilio = Value
End Set
End Property
Public Property DptoCliente() As String
Get
Return dpto
End Get
Set(ByVal Value As String)
dpto = Value
End Set
End Property
Public Property PisoCliente() As Integer
Get
Return piso
End Get
Set(ByVal Value As Integer)
piso = Value
End Set
End Property
Public Property CityCliente() As String
Get
Return ciudad
End Get
Set(ByVal Value As String)
ciudad = Value
End Set
End Property
Public Property CpaCliente() As String
Get
Return cPostal
End Get
Set(ByVal Value As String)
cPostal = Value
End Set
End Property
Public Property PciaCliente() As String
Get
Return provincia
End Get
Set(ByVal Value As String)
provincia = Value
End Set
End Property
Public Property RazonSocial() As String
Get
Return razon_Social
End Get
Set(ByVal Value As String)
razon_Social = Value
End Set
End Property
Public Property eMail() As String
Get
Return oEMail
End Get
Set(ByVal Value As String)
oEMail = Value
End Set
End Property
End Class
Esas propiedades se usan para cargar la variable varCliente en el formulario destino, por ejemplo