Datos de una Forma a Otra.

05/04/2006 - 22:47 por Alberto Guerrero Zaro | Informe spam
Srs.

No soy experto en el tema. Estoy usando VB.NET 2003 , y trato de traspasar
datos desde una forma, a controles de texto de la forma originaria o de
quien la llamó; en Visual6 super simple. Aquí no le he podido encontrar el
asunto.
He hice algo rebuscado como esto:
`
Dim i As Integer, nomcontrol As String, ncontroles As Integer
ncontroles = Me.Owner.Controls.Count
For i = 0 To ncontroles - 1
nomcontrol = Me.Owner.Controls.Item(i).Name
Select Case nomcontrol
Case "txtsnrut" 'control al cual deseo traspasar la información en la otra
forma
Me.Owner.Controls.Item(i).Text = "9567876-2"
End Select
Next i
`
Debe haber algo mas simple como

socios.txtsnrut.text=listado.txtsnrut.txt

Si alguien me puede orientar lo agradecería
Atentamente
Alberto Guerrero Zaro.

Preguntas similare

Leer las respuestas

#6 Alberto Guerrero Zaro
06/04/2006 - 14:44 | Informe spam
Leonardo tu explicación ha sido bastante académica, gracias por darte el
tiempo.

Atentamente.

Alberto Guerrero Zaro.

"Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g> escribió
en el mensaje news:

"Alberto Guerrero Zaro" escribió en el mensaje
news:%
Srs.

No soy experto en el tema. Estoy usando VB.NET 2003 , y trato de
traspasar datos desde una forma, a controles de texto de la forma
originaria o de quien la llamó; en Visual6 super simple. Aquí no le he
podido encontrar el asunto.
He hice algo rebuscado como esto:
`
Dim i As Integer, nomcontrol As String, ncontroles As Integer
ncontroles = Me.Owner.Controls.Count
For i = 0 To ncontroles - 1
nomcontrol = Me.Owner.Controls.Item(i).Name
Select Case nomcontrol
Case "txtsnrut" 'control al cual deseo traspasar la información en la
otra forma
Me.Owner.Controls.Item(i).Text = "9567876-2"
End Select
Next i
`
Debe haber algo mas simple como

socios.txtsnrut.text=listado.txtsnrut.text



Hola, Alberto:

Si "socios" es una referencia a una forma que ha sido declarada como
Public en un modulo, o como Shared en una clase que has importado, puedes
perfectamente bien escribir tu simple sentencia.

Dependiendo de la manera en que se activen, las formas pueden ser
independientes (activadas mediante un comando del usuario: un click en un
menu, por ejemplo) o subordinadas (abiertas por una forma de nivel
superior para realizar una funcion complementaria).

Cuando una forma X activa a una forma Y, la responsabilidad de obtener la
informacion contenida en Y es de X. Pretender que Y actualice a X es un
error conceptual llamado "Inversion de Dependencia", que lleva a
soluciones inestables y a codigo rebuscado.

La manera en la que X puede obtener la informacion de Y es a traves de una
funcion:

[en Y:]
Public Function GetCliente() As String
Me.ShowDialog()
Return txtCliente.Text
End Function

y desde X:

Dim fY As New FormY
CodigoCliente = Y.GetCliente()

o bien, Y "conoce" el tipo de las formas a las que va a servir, entonces
puedes, en el boton de confirmar la operacion (Aceptar, Ok, Seguir, etc),
llenar los controles de X:

En X:

Dim fY As New FormY
fY.LlenarControles(Me)

En Y:

Public Sub LlenarControles(Destino As FormY)
Me.ShowDialog()
With Destino
.txtNombreCliente.Text = Me.txtNombreCliente.Text
.txtCodigoCliente.Text = Me.txtCodigoCliente.TExt
...
End With
Dispose()
End Sub

En estos casos, es conveniente utilizar una Interfaz, que te permitira
usar la forma Y con diferentes tipos de formas, siempre que implementen la
interfaz declarada.

Finalmente, puedes utilizar eventos en la forma subordinada, para
notificarle a la forma principal que hay informacion disponible.

Salud!


Respuesta Responder a este mensaje
#7 Lord Voldemort
06/04/2006 - 16:03 | Informe spam
sip comprendo que la cosa entones no es sencilla..o tan cencilla e
intuitiva...como lo esperebamos.. cuando pensando que en puntonet las cosas
serian mas faciles...

en un libro encontre este codigo.. para mostrar un menu que estaba en mi mdi
principal, estando en un mdichild
CType(Me.MdiParent, myMDI).UnMenu.Visible = True

pense que era una manera truquiada de hacerlo que podria haber otra...

en fin amigo Jesus.. Saludos y mejor sigo leyendo las mensajes para seguir
mejorando...




"Jesús López" wrote in message
news:%23r%23WV$
Ese problema no tiene nada que ver con Microsoft. Es un problema típico de
"scope" que se presenta en la mayoría de los lenguajes de programación.
Para solucionarlo tienes que entender bien el concepto de "scope" y saber
manipularlo.

Saludos:

Jesús López


Respuesta Responder a este mensaje
#8 Lord Voldemort
06/04/2006 - 16:06 | Informe spam
esto pone visible un menu de tu form MDI estando tu en un formulario hijo,
claro del mismo MDI..

CType(Me.MdiParent, myMDI).UnMenu.Visible = True

"Alberto Guerrero Zaro" wrote in message
news:
Leonardo tu explicación ha sido bastante académica, gracias por darte el
tiempo.

Atentamente.

Alberto Guerrero Zaro.

"Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g>
escribió en el mensaje news:

"Alberto Guerrero Zaro" escribió en el mensaje
news:%
Srs.

No soy experto en el tema. Estoy usando VB.NET 2003 , y trato de
traspasar datos desde una forma, a controles de texto de la forma
originaria o de quien la llamó; en Visual6 super simple. Aquí no le he
podido encontrar el asunto.
He hice algo rebuscado como esto:
`
Dim i As Integer, nomcontrol As String, ncontroles As Integer
ncontroles = Me.Owner.Controls.Count
For i = 0 To ncontroles - 1
nomcontrol = Me.Owner.Controls.Item(i).Name
Select Case nomcontrol
Case "txtsnrut" 'control al cual deseo traspasar la información en la
otra forma
Me.Owner.Controls.Item(i).Text = "9567876-2"
End Select
Next i
`
Debe haber algo mas simple como

socios.txtsnrut.text=listado.txtsnrut.text



Hola, Alberto:

Si "socios" es una referencia a una forma que ha sido declarada como
Public en un modulo, o como Shared en una clase que has importado, puedes
perfectamente bien escribir tu simple sentencia.

Dependiendo de la manera en que se activen, las formas pueden ser
independientes (activadas mediante un comando del usuario: un click en un
menu, por ejemplo) o subordinadas (abiertas por una forma de nivel
superior para realizar una funcion complementaria).

Cuando una forma X activa a una forma Y, la responsabilidad de obtener la
informacion contenida en Y es de X. Pretender que Y actualice a X es un
error conceptual llamado "Inversion de Dependencia", que lleva a
soluciones inestables y a codigo rebuscado.

La manera en la que X puede obtener la informacion de Y es a traves de
una funcion:

[en Y:]
Public Function GetCliente() As String
Me.ShowDialog()
Return txtCliente.Text
End Function

y desde X:

Dim fY As New FormY
CodigoCliente = Y.GetCliente()

o bien, Y "conoce" el tipo de las formas a las que va a servir, entonces
puedes, en el boton de confirmar la operacion (Aceptar, Ok, Seguir, etc),
llenar los controles de X:

En X:

Dim fY As New FormY
fY.LlenarControles(Me)

En Y:

Public Sub LlenarControles(Destino As FormY)
Me.ShowDialog()
With Destino
.txtNombreCliente.Text = Me.txtNombreCliente.Text
.txtCodigoCliente.Text = Me.txtCodigoCliente.TExt
...
End With
Dispose()
End Sub

En estos casos, es conveniente utilizar una Interfaz, que te permitira
usar la forma Y con diferentes tipos de formas, siempre que implementen
la interfaz declarada.

Finalmente, puedes utilizar eventos en la forma subordinada, para
notificarle a la forma principal que hay informacion disponible.

Salud!






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