Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pasar variable del form padre al form hijo

Estas en el tema de Pasar variable del form padre al form hijo en el foro de Visual Basic clásico en Foros del Web. Hola, desde el formulario padre abro un formulario hijo. En este último necesito obtener un Id de un producto que tengo guardado en una variable ...
  #1 (permalink)  
Antiguo 27/08/2005, 19:32
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Pasar variable del form padre al form hijo

Hola, desde el formulario padre abro un formulario hijo. En este último necesito obtener un Id de un producto que tengo guardado en una variable pública en el formulario padre. De esta forma lo recojo en el formulario secundario:

Dim frmMain As New frmMain()
Dim varProductoId As Integer
varProductoId = frmMain.varProductoId

Pero siempre me devuelve 0. La lógica que le encuentro es la siguiente: Al momento de cargar el formulario secundario, instancio el formulario principal, por lo que todas sus variables aún no tienen ningún valor. Es esa congetura correcta?, de todas formas, si es correcto esto que digo, ¿Cuál es la solución para pasar variables entre formularios?
Muchas gracias por su ayuda.
Saludos!.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 28/08/2005, 07:53
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
hace un modulo
y de claras una varible global

Global Mivar as Inteter

y la reconoce en todos los formularios..


nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 28/08/2005, 19:29
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
otra forma es la siguiente:
'====================================
'en el form padre (form1) declaras la variable como public
public variable as string

'en el form hijo (form2)la llamas a la variable de la siguiente manera

label1.caption = form1.variable

y listo, bue espero ke te sirva, siuno hace como dice GEO.
salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #4 (permalink)  
Antiguo 28/08/2005, 19:58
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por GeoAvila
hace un modulo
y de claras una varible global

Global Mivar as Inteter

y la reconoce en todos los formularios..


nos vemos..

Eso es, perdona, una muuuy mala idea...

Si programas así siempre... Quítate esa mala costumbre.
  #5 (permalink)  
Antiguo 29/08/2005, 08:03
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Cita:
Iniciado por MaxExtreme
Eso es, perdona, una muuuy mala idea...

Si programas así siempre... Quítate esa mala costumbre.
eso lo hago con variables globales que me sirven en mas de 20 forms y asi se me hace más facil que de malo tiene..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #6 (permalink)  
Antiguo 29/08/2005, 10:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por GeoAvila
eso lo hago con variables globales que me sirven en mas de 20 forms y asi se me hace más facil que de malo tiene..
Bueno, sobre variables globales... Está completamente demostrado que es mejor no usarlas a hacerlo. En VB es común hacerlo, como también usar goto o similares.

Para explicarlo sencillamente, las variables globales son malas porque son globales. Esto significa que nunca sabes el valor que tienen, porque cualquiera las puede modificar, y cualquiera lo pudo hacer en cualquier momento. Esto en VB se multiplica, dado que funciona por eventos...

Puedes buscar en Google explicaciones de esto detalladas y ejemplos. En cualquier caso:

Cita:
Iniciado por http://es.tldp.org/Manuales-LuCAS/doc-guia-usuario-ruby/doc-guia-usuario-ruby-html/x840.html
La variables globales deben utilizarse con parquedad. Son peligrosas porque se pueden modificar desde cualquier lugar. Una sobreutilización de variables globales puede dificultar la localización de errores; también indica que no se ha pensado detenidamente el diseño del programa.
En resumen, no se deben usar. Extrañamente, la gente que las usa para resolver problemas que no sabe resolver de la manera correcta termina sobre-utilizándolas como se explica ahí, y te encuentras con módulos llenos de variables... Es equivalente a mal diseño y a no saber programar en ese lenguaje en la mayoría de los casos.
  #7 (permalink)  
Antiguo 29/08/2005, 10:53
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
perdona pero yo se que valores pasan por ella y desde luego que se que formularios la cambian si se que valor pueden tener en determinado momento, mi programación es ordena considero yo.. y no me han dado ningun problema pero reviso tu comentario.

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #8 (permalink)  
Antiguo 29/08/2005, 13:27
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Muy bueno... interesante también el debate. Voy a probar las dos soluciones. De todas formas, los módulos entonces se recomiendan para tener procedimientos y funciones que sean globales?
__________________
Add, never Remove
  #9 (permalink)  
Antiguo 28/09/2005, 17:34
 
Fecha de Ingreso: febrero-2005
Mensajes: 8
Antigüedad: 19 años, 2 meses
Puntos: 0
Y como lo hacen en C#?
  #10 (permalink)  
Antiguo 29/09/2005, 04:48
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
Cita:
Iniciado por CarlosJC
Y como lo hacen en C#?
Esta seccion es VB...postealo en la seccccion programacion.
salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
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 01:50.