Autor
|
Tema: Pasar datos entre formularios (Leído 5,105 veces)
|
decaos
Desconectado
Mensajes: 2
|
Hola he empezado a estudiar programacion y tengo un problema si alguien tuviera la respuesta de antemano le agradezco.
He creado un ejemplo pequeño para que vean el error que se me produce.
Si creamos un nuevo proyecto (muy simple) con tres formularios (Form1, Form2 y Form3).
En el primer formulario (Form1) se coloca una caja de texto (TextBox1) y un botón .el código del evento click del botón debe hacer que se cargue el segundo formulario para eso yo pongo de código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim formulario2 As New Form2() formulario2.Show()
End Sub
En el 2do ponemos hacemos lo mismo colocamos una caja de texto (TextBox1) y un botón. El código del evento click del botón debe hacer que se cargue el tercer formulario. Para eso yo pongo de código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim formulario3 As New Form3() formulario3.Show()
End Sub
Por último, en el último formulario (Form3) coloco solo una caja de texto. ahora lo que deseo es que al ingesar un texto en la primera caja de texto del primer formulario (TextBox1) este valor al pulsar el boton pase a la caja de texto del segundo formulario (TextBox1) y luego que del 2do formulario al pulsar el boton pase a la caja de texto del 3er formulario coloco el siguiente codigo en los eventos Load del 1er y 2do formulario:
EN EL FORMULARIO 2:
Public Class Form2
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.TextBox1.Text = Form1.TextBox1.Text End Sub End Class
EN EL FORMULARIO 3:
Public Class Form3
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.TextBox1.Text = Form2.TextBox1.Text End Sub End Class
Una vez hecho esto, se puede comprobar como el valor pasa del formulario 1 al formulario 2 pero no pasa del formulario 2 al formulario 3.
Como ven, sólo se carga bien la segunda caja de texto. Pero la tercera nada.
ya he provado varios tipos de codigo que he encontrado en internet pero todos hacen lo mismo solo funciona para pasar de la primera a la 2da caja de texto
¿Por qué ocurre esto? ¿Cómo puedo solucionarlo? Por adelantado, muchas gracias por su ayuda.
|
|
|
En línea
|
|
|
|
RagleM
Desconectado
Mensajes: 484
what da fuck .. ill do it!!
|
hola, para poder dar a solucion a este problema lo que puedes hacer, opinion personal, es trabajar solo con objetos, osea en en el form2 y form3 declarar una variable publica.. algo asi
class form2 { public string var2 } de igual manera en el form3 y una vez que instancies el formulario ya sea 2 o 3 pasas el valor a esa variable y la muestras... seria algo asi:
Dim formulario2 As New Form2() formulario2.var2 = TextBox1.text formulario2.Show()
espero dejarme entender.. y kizas alguien tiene una mejor forma de hacerlo
de todas formas espero te sirva mi respuiesta..
saludos
|
|
|
En línea
|
. (\ /) (O.o) (> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.
Linux Registered User # 387266
|
|
|
((( SPAWN )))
Desconectado
Mensajes: 56
|
Hola proba de esta forma: Code Form1 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show() End Sub End Class
Code Form2 Public Class Form2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form3.Show() End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = Form1.TextBox1.Text End Sub End Class
Code Form3 Public Class Form3 Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = Form2.TextBox1.Text End Sub End Class
De esta forma haces referencia al formulario en si, y no a la copia del formulario que seria la instancia del objeto que creas. Espero haberte ayudado y si alguien tiene otra explicación podria compartirla tambien. Saludos.
|
|
|
En línea
|
|
|
|
decaos
Desconectado
Mensajes: 2
|
gracias SPAWN y tienes razon yo lo que estaba haciendo con Dim Formulario2 As New Form2() era crear un nuevo formulario y lo que tenia que hacer era referirme al formulario que ya estaba creado para ello hice un pequeño cambio casi tu lo has hecho declare la variable formulario2 como un objeto "Dim formulario2 As Object" luego le asigne el formulario al cual quiero pasar "formulario2 = Form2" luego asi al referirme a "formulario2" ahora si me estoy refiriendo a el formulario que tengo en mi proyecto y no a uno que he creado como me estaba pasando lo llegue a averiguar de tanto probar y al darme cuenta que aun despues de borrar el 2do y 3er form me seguia apareciendo el 2do form asi me di cuenta que era porq yo lo estaba creando. Gracias por tu respuesta tienes razon y es la forma correcta de hacerlo saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
pasar datos entre webs con seguiridad =P
Desarrollo Web
|
Kase
|
3
|
2,835
|
26 Agosto 2011, 15:42 pm
por Novlucker
|
|
|
Problema para pasar datos entre formularios NETBEANS
Java
|
lluvplay
|
1
|
4,264
|
9 Julio 2012, 07:56 am
por rommel89
|
|
|
Error al pasar formularios con dataset de un ordenador a otro con sql-server
.NET (C#, VB.NET, ASP)
|
arts
|
1
|
1,910
|
30 Mayo 2014, 23:59 pm
por arts
|
|
|
Pasar datos de ArrayList entre metodos (DUDA)
Java
|
MrSimpatia
|
1
|
2,089
|
7 Octubre 2018, 23:41 pm
por 3n31ch
|
|
|
Problema al pasar datos entre formularios bases de datos distintas
Programación General
|
soyconta
|
0
|
2,703
|
5 Junio 2020, 19:22 pm
por soyconta
|
|