Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar parametros entre formas

Estas en el tema de Pasar parametros entre formas en el foro de .NET en Foros del Web. Estoy utilizando varios formas las cuales necesito que se envien parametros unos a otros, por ejemplo: En form1 al darle clic a un boton, me ...
  #1 (permalink)  
Antiguo 31/10/2005, 19:07
 
Fecha de Ingreso: octubre-2004
Ubicación: Guatemala
Mensajes: 83
Antigüedad: 19 años, 6 meses
Puntos: 0
Pasar parametros entre formas

Estoy utilizando varios formas las cuales necesito que se envien parametros unos a otros, por ejemplo:

En form1 al darle clic a un boton, me abre form2 por medio de :

dim frmNuevo as new form2
form2.show

Ahora bien, necesito que al terminar form2 me devuelva algun valor a utilizar en form1, si hago lo mismo:

dim frmViejo as new form1

me crea una nueva instancia, lo cual no es lo que quiero, sino seguir manejando la instancia anterior.

Cualquier ayuda sera agradecida
__________________
Definitivamente la vida no es como en las películas...
C'est la vie
  #2 (permalink)  
Antiguo 31/10/2005, 20:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Lo primero que tendrías que hacer es definir en tu form2 variables como publicas (aquellas de las cuales tomas los valores para el form1). Lo segundo es cambiar esta linea form2.show por form2.ShowDialog(), lo que hace es pasarle el hilo de ejecución al segundo form, y hasta que no se cierra el form2 no se sigue ejecutando las instrucciones que están debajo de form2.ShowDialog(), lo cual es justo lo que necesitas. De otra forma, al abrir el form2, seguiría la ejecución del form1, y no podrías acceder a las variables del form2.
Accedes a las variables del form2 así: NombreDelForm.NombreDeLaVariable.

Por ejemplo:

Dim frmNuevo As new Form2
frmNuevo.Show()

MsgBox(frmNuevo.AlgunaVariable.ToString()) 'No te va a devolver nada

En cambio con

Dim frmNuevo As New Form2
frmNuevo.ShowDialog() ' Abrís el formulario secundario, se modifican las variables y ya están disponibles para mostrarlas una vez que se cierre

MsgBox(frmNuevo.AlgunaVariable) ' Te devuelve el valor de la variable respectiva

Espero que te haya sido útil de alguna forma.
Saludos!.
__________________
Add, never Remove
  #3 (permalink)  
Antiguo 01/11/2005, 06:09
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
FORMULARIO DONDE QUIERES RECIBIR UNA VARIABLE.
Código:
Public miCadena as String

private frmSegundo as frmFormulario
EVENTO BOTON 'Por ejemplo
        frmSegundo = new frmFormulario
        frmSegundo.FormularioReferencia = Me
        frmSegundo.ShowDialog 'O show, lo que tu quieras
        MsgBox(miCadena)
FIN EVENTO BOTON

SEGUNDO FORMULARIO
Código:
Public FormularioReferencia as frmPrimero
EVENTO BOTON
        FormularioReferencia.miCadena = "Hola Fondo Norte"
        Me.Close()
FIN EVENTO BOTON
__________________
Charlie.
  #4 (permalink)  
Antiguo 01/11/2005, 07:06
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
también puedes declarar las variables en un módulo público.


saludos!
  #5 (permalink)  
Antiguo 01/11/2005, 12:26
 
Fecha de Ingreso: octubre-2004
Ubicación: Guatemala
Mensajes: 83
Antigüedad: 19 años, 6 meses
Puntos: 0
Gracias - Ahora con MDI

El pasar parametros de formas a formas lo he realizado satisfactoriamente gracias a sus respuestas.

Sin embargo tengo otro problema, utilizo una forma con la propiedad MdiParent y deseo que la forma "hijo" me devuelva un valor igual que el problema anterior, solo que aqui no me permite abrir la forma "hijo" de modo modal, por lo que la solucion anterior creo que no aplica.

De nuevo, gracias por sus respuestas anteriores, y gracias de antemano por las nuevas.
__________________
Definitivamente la vida no es como en las películas...
C'est la vie
  #6 (permalink)  
Antiguo 01/11/2005, 17:12
 
Fecha de Ingreso: octubre-2005
Mensajes: 16
Antigüedad: 18 años, 6 meses
Puntos: 0
Prueba declarar la variable en la que recibiras la respuesta en el formulario parent como pública.

(algo aprecido a esto)
Public Class MDIMain
Inherits System.Windows.Forms.Form

'formulario cargado actualmente
Public frmCurrent As Form

'Variable en la que recibiras la respuesta
Public Respuesta As String

....

end Class

Y en el formulario hijo, cuando quieras darle valor a esa variable (al cerrar o al pulsar sobre el boton aceptar....) simplemente tienes que hacer lo siguiente:

me.parent.Respuesta="Valor"

Espero que te ayude

Saludos
  #7 (permalink)  
Antiguo 01/11/2005, 17:41
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Y de todas formas, como yo te explique también puedes hacerlo.
__________________
Charlie.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 13:56.