Pasar valores de una forma a otra

12/08/2004 - 01:24 por Omar Flores | Informe spam
Que tal, tengo el sig. problema. En una aplicacion tengo 2 formas una
principal
y otra de busqueda, y quiero pasar un valor de la forma de busqueda a la
principal

Es decir, en la principal tengo un textBox llamado txtID y tengo un boton
que abre
la forma de busqueda en la cual voy a buscar el id, una vez localizado
el valor deseado quiero regresarlo a la forma Principal, es decir que el
txtID tenga ahora
el valor que seleccione de la forma de busqueda, ojalá y alguien me pueda
proporcionar
algún ejemplo de código.

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
12/08/2004 - 01:12 | Informe spam
"Omar Flores" escribió en el mensaje
news:OH8IXH$
Que tal, tengo el sig. problema. En una aplicacion tengo 2 formas una
principal
y otra de busqueda, y quiero pasar un valor de la forma de busqueda a la
principal

Es decir, en la principal tengo un textBox llamado txtID y tengo un boton
que abre
la forma de busqueda en la cual voy a buscar el id, una vez localizado
el valor deseado quiero regresarlo a la forma Principal, es decir que el
txtID tenga ahora
el valor que seleccione de la forma de busqueda, ojalá y alguien me pueda
proporcionar
algún ejemplo de código.

Muchas gracias.



Hola, Omar:

Hay una cantidad de formas de lograr lo que describes.

La más simple es el estilo de "posta": la forma principal abre la forma de
búsqueda, ésta coloca los resultados en un lugar predefinido (variables
públicas en un módulo, por ejemplo) y cuando se cierra, la forma principal
toma los datos de ese lugar.

El inconveniente es que dependes de un módulo (un recurso muy poco OO y casi
imposible de portar a otros lenguajes) y de variables globales, y eso le
quita muchísima flexibilidad a los diseños (aunque no siempre es aparente,
siempre es bueno evitarlas).

Otra posibilidad es que cuando la forma de busqueda se cierre, genere un
evento pasando los resultados a la unidad que la abrió. Es más orientada a
objetos que la primera, pero tiene el inconveniente de que debes escribir
una función adicional de la forma principal para obtener los resultados.

La que más me gusta es que la forma de búsqueda implemente una función que
se encargue de abrir la propia forma, esperar a que se cierre y devolver los
resultados. La secuencia de código podría ser más o menos así:

en frmBusqueda:

Public Function Buscar() As String
If Me.ShowDialog() <> DialogResult.Cancel Then
Return txResultado.Text
Else
Return ""
End If
End Function

y en la forma princpial:

Dim f as New frmBusqueda
resultado = f.Buscar()
f.Dispose()

como ves, es la más simple (y a mi juicio la mas elegante) de todas las
opciones.


Salud!

Leonardo
[MVP Visual Basic]
leonardo<arroba>mvps<punto>org
Respuesta Responder a este mensaje
#2 Rodia
12/08/2004 - 18:21 | Informe spam
con esto guardo en variables lo que quiero y del tipo que
quiero, lugo los pongo en cualquier form de mi programa,
es la forma en que los desarrolladores del software .NET
hicieron para poder migrar de vb6 a .net, en conclusion
hicieron su propia excepcion a la regla, ya que esto en
teoria no se tendria que hacer, todo por que al importar
esta formas a asp y xml no devian estar relacionadas

Public Class misdatos
Private Shared CUsuario As Empleado
Private Shared CProd_Eleg As DataRow
Private Shared CPedido_Eleg As DataRow
Private Shared CProd_Hist As DataRow
Private Shared CCambios As Boolean
Private Shared Ctipo_Cambio As String
Private Shared CDataSet As DataSet
Private Shared CAux As String
Private Shared Creferencia As String
Private Shared CIdDescrip As Integer
Private Shared CDelPeriodo As Date
Private Shared CAlPeriodo As Date
Private Shared CNC As Boolean
Public Shared Property Usuario() As Empleado
Get
Return CUsuario
End Get
Set(ByVal Value As Empleado)
CUsuario = Value
End Set
End Property
Public Shared Property Prod_Eleg() As DataRow
Get
Return CProd_Eleg
End Get
Set(ByVal Value As DataRow)
CProd_Eleg = Value
End Set
End Property
Public Shared Property Prod_Hist() As DataRow
Get
Return CProd_Hist
End Get
Set(ByVal Value As DataRow)
CProd_Hist = Value
End Set
End Property
Public Shared Property Tipo_Cambio() As String
Get
Return CTipo_Cambio
End Get
Set(ByVal Value As String)
CTipo_Cambio = Value
End Set
End Property
Public Shared Property MiDataSet() As DataSet
Get
Return CDataSet
End Get
Set(ByVal Value As DataSet)
CDataSet = Value
End Set
End Property
Public Shared Property IdDescrip() As Integer
Get
Return CIdDescrip
End Get
Set(ByVal Value As Integer)
CIdDescrip = Value
End Set
End Property
Public Shared Property Pedido_Eleg() As DataRow
Get
Return CPedido_Eleg
End Get
Set(ByVal Value As DataRow)
CPedido_Eleg = Value
End Set
End Property
Public Shared Property Referencia() As String
Get
Return CReferencia
End Get
Set(ByVal Value As String)
CReferencia = Value
End Set
End Property
Public Shared Property DelPeriodo() As Date
Get
Return CDelPeriodo
End Get
Set(ByVal Value As Date)
CDelPeriodo = Value
End Set
End Property
Public Shared Property AlPeriodo() As Date
Get
Return CAlPeriodo
End Get
Set(ByVal Value As Date)
CAlPeriodo = Value
End Set
End Property
Public Shared Property NC() As Boolean
Get
Return CNC
End Get
Set(ByVal Value As Boolean)
CNC = Value
End Set
End Property
End Class
Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
12/08/2004 - 19:35 | Informe spam
Yo lo haria todavia un poco mas elegante (con el constructor declarado como
privado):

Public Shared Function Buscar() As String

Dim f as New frmBusqueda

If f.ShowDialog() <> DialogResult.Cancel Then
Return f.txResultado.Text
Else
Return Nothing
End If

End Function

Y directamente haces:

resultado = frmBusqueda.Buscar()

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#4 Ryuyi
13/08/2004 - 22:23 | Informe spam
Hola Roda tenes el mismo codigo utilizando clases como hiciste
para actualizar ,buscar y eliminar para ver gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida