***(Urgente) Compartir informacion entre Formularios (Urgente!!!!)

02/10/2004 - 17:18 por Macario Lopez | Informe spam
Tengo 2 formularios, en el principal(miforma1) estoy
llamando a un formulario secundario (miforma2).

En el formulario secundario (miforma2) es una especie de
busqueda en la cual despliego resultados en un datagrid,
y al hacerle doble-click pretendo regresar el codigo y el
nombre encontrados a la forma principal(miforma1)

En este foro encontre algo parecido a esto:
Public Sub New(ByVal cod As String,ByVal Nom AsString)
txtCod.Text = cod
txtnombre.Text = Nom
End Sub

Pero al hacer lo siguiente en el formulario secundario
(Miforma2):
Dim Forma1 As Form = New Miforma1(codigo,nombre)
Forma1.Show()
al hacer la instancia de la forma(miforma1) me produce un
error de NullReference en el constructor que cree en
miforma1, esto al querer asignar -> txtCod.Text = cod y
txtnombre.Text = Nom

le puse la intruccion "inicializacomponentes()" y si
funciona pero lo malo a qui es que crea otro formulario
nuevo de miforma1.

ha tambien intente lo siguiente en miforma1:

Public Property Texto1() As String
Get
Return txtcod.Text
End Get
Set(ByVal Value As String)
txtcod.Text = Value
End Set
End Property

y pues no me regresa el resultado! creo que por lo mosmo
del anterior que lo pone en otra forma nueva

Alguien me podria ayudar, por favor y gracias de antemano

Preguntas similare

Leer las respuestas

#1 Cesar Rivera
02/10/2004 - 23:09 | Informe spam
Saludos,

Entiendo que "miForma1" es la forma principal que muestra detalle de una
información y "miForma2" es la forma de búsqueda.

Hace unas semanas tuve el mismo inconveniente y se me ocurrió lo siguiente:
asumiendo que llamas "miForma2" desde "miForma1" usando ShowDialog, usar la
propiedad "Tag" de ambas formas. Debe existir una forma más fácil pero bueno,
aqui voy.

Debes crear una clase de los parámetros que involucra. Ejemplo:

Class BusqParam

Public codigo as String
Public nombre as String

Public New(ByVal cod as String, ByVal nom as String)
codigo = cod
nombre = nom
End Sub

End Class

En "miForma1", antes de llamar a "miForma2" se codifica:

Dim f2 as New miForma2()
Me.Tag = null
f2.Tag = Me
f2.ShowDialog()

"f2.Tag" contiene una referencia al objeto "miForma1" que usaremos más
adelante en "miForma2", mientras que "Me.Tag" representará los parámetros
obtenidos de "miForma2", nulo si no hay parámetros o una instancia de la
clase BusqParam si hubo parámetros.


Asumiendo que el usuario seleccionó el elemento buscado en el grid en la
forma "miForma2" y pulsó el botón "aceptar", se codificaría en el evento del
botón algo como:

Dim p as BusqParam
p = new BusqParam(txtCodigo.text, txtNombre.text)
CType(Me.Tag,System.Windows.Form).Tag = p
Me.Close()

y en el de cancelar:

CType(Me.Tag,System.windows.Form).Tag = Nothing
Me.Close()

Volviendo a "miForma1", la siguiente línea justo después de
"f2.ShowDialog()" verifica si hubo o no parámetros:

If Not (Me.Tag is Nothing) Then
' Hubo Parámetros... Procesar ...
' Obtener así
cod = CType(Me.Tag,BusqParam).codigo
nom = CType(Me.Tag,BusqParam).nombre
' ... etc etc...
Else
' No se consiguió información... Cancelar
End If

Espero que esto ayude ;)

Saludos,
Ing. Cesar Rivera
mbo, Vza

"Macario Lopez" wrote:

Tengo 2 formularios, en el principal(miforma1) estoy
llamando a un formulario secundario (miforma2).

En el formulario secundario (miforma2) es una especie de
busqueda en la cual despliego resultados en un datagrid,
y al hacerle doble-click pretendo regresar el codigo y el
nombre encontrados a la forma principal(miforma1)

En este foro encontre algo parecido a esto:
Public Sub New(ByVal cod As String,ByVal Nom AsString)
txtCod.Text = cod
txtnombre.Text = Nom
End Sub

Pero al hacer lo siguiente en el formulario secundario
(Miforma2):
Dim Forma1 As Form = New Miforma1(codigo,nombre)
Forma1.Show()
al hacer la instancia de la forma(miforma1) me produce un
error de NullReference en el constructor que cree en
miforma1, esto al querer asignar -> txtCod.Text = cod y
txtnombre.Text = Nom

le puse la intruccion "inicializacomponentes()" y si
funciona pero lo malo a qui es que crea otro formulario
nuevo de miforma1.

ha tambien intente lo siguiente en miforma1:

Public Property Texto1() As String
Get
Return txtcod.Text
End Get
Set(ByVal Value As String)
txtcod.Text = Value
End Set
End Property

y pues no me regresa el resultado! creo que por lo mosmo
del anterior que lo pone en otra forma nueva

Alguien me podria ayudar, por favor y gracias de antemano



Respuesta Responder a este mensaje
#2 Luis Miguel Cisneros L.
04/10/2004 - 02:38 | Informe spam
Hola...

Prueba poner en la primera linea del constructor una llamada al construtor
de la forma, con me.new() a ver como te va...

Saludos
Luis Cisneros
"Macario Lopez" wrote in message
news:2a0701c4a893$0d23b7c0$
Tengo 2 formularios, en el principal(miforma1) estoy
llamando a un formulario secundario (miforma2).

En el formulario secundario (miforma2) es una especie de
busqueda en la cual despliego resultados en un datagrid,
y al hacerle doble-click pretendo regresar el codigo y el
nombre encontrados a la forma principal(miforma1)

En este foro encontre algo parecido a esto:
Public Sub New(ByVal cod As String,ByVal Nom AsString)
txtCod.Text = cod
txtnombre.Text = Nom
End Sub

Pero al hacer lo siguiente en el formulario secundario
(Miforma2):
Dim Forma1 As Form = New Miforma1(codigo,nombre)
Forma1.Show()
al hacer la instancia de la forma(miforma1) me produce un
error de NullReference en el constructor que cree en
miforma1, esto al querer asignar -> txtCod.Text = cod y
txtnombre.Text = Nom

le puse la intruccion "inicializacomponentes()" y si
funciona pero lo malo a qui es que crea otro formulario
nuevo de miforma1.

ha tambien intente lo siguiente en miforma1:

Public Property Texto1() As String
Get
Return txtcod.Text
End Get
Set(ByVal Value As String)
txtcod.Text = Value
End Set
End Property

y pues no me regresa el resultado! creo que por lo mosmo
del anterior que lo pone en otra forma nueva

Alguien me podria ayudar, por favor y gracias de antemano


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida