Visual Basic.NET - Pierdo datos entre formularios

 
Vista:

Pierdo datos entre formularios

Publicado por qqqw (1 intervención) el 26/07/2006 13:21:26
Buenas, una consulta:
Tengo un formulario con un DataGrid y un boton q abre otro formulario pequeño tipo pop-Up con unos checkBox para hacer una seleccion, resulta q cuando le doy al boton Aceptar del formulario "pop-Up" y vuelvo al formulario principal e intento recorrerme el Datatable del Datagrid o el propio Datagrid resulta q se han vaciado.... Queria saber como navegar entre formularios y no perder los datos.. el DataTable es una variable global, puede ser q al cerrar el pop-up y volver al formulario principal se vuelvan a definir las variables globales y por eso se inicializan? como se solucionaria eso?
Muchas Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pierdo datos entre formularios

Publicado por silvia (12 intervenciones) el 04/08/2006 22:59:55
Hola, el problema que existe con la navegación entre pantallas es que tienes que definir en el constructor de la pantalla emergente, es decir si tienes que pasar datos de una pantalla a otra lo que debes de hacer es lo siguiente:

En el constructor de la pantalla "pop-up", debes de definirle que vas a pasarle datos a la pantalla que lo llamo, ej:

Dim office As New frm_office (esta variable se iguala a la pantalla que llama a la pop-up)

Public Sub New(ByRef ventanapadre As frm_office)
MyBase.New()
Me.office = ventanapadre
'El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()

'Agregar cualquier inicialización después de la llamada a InitializeComponent()

End Sub

Esto lo necesitas puesto que cuando quiero asignar un valor de la pantalla emergente y trasladarla a la principal entonces utilizo:

office.txt_codigo.Text = variable

Ponemos el nombre de la pantalla, caja de texto o variable y el valor que le queremos asignar.

Y muy importante cuando llames a la pantalla pop-up debes de :

Try
Dim frmbusquedaoffice As New frm_busqueda_office(Me) con esto le dices al constructor de la otra pantalla que tu le estas enviando a la pantalla padre
frmbusquedaoffice.ShowDialog()
Catch ex As Exception
End Try

Con esto no se deben de perder o inicializar datos, puesto que trabajas con los campos de la pantalla padre e hija.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar