Los foros del Guille

MKN Reservas (Maro - Kayak Nerja)


Kayak Maro - Rutas y alquiler de kayak y tabla

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu inter�s (algunos de los avisos publicados)

01/feb./2019

Como te avisé, desde el 1 de febrero de 2019

No se podrán escribir nuevos mensajes ni editar los existentes

En breve solo se mostrarán los mensajes con respuestas.
Posiblemente para el 1 de marzo, solamente se mostrarán los que tengan respuestas y estén marcados como respuesta válida.

  Foro: .NET VB Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 55626 - Pasar valor de un formulario a otro mediante propiedad
IDAsuntoFechaNick 
55626 Pasar valor de un formulario a otro mediante propiedad04/08/11 18:19irubio_273   
Visual Basic .Net
Hola, tengo dos formulario FormPadre y FormHijo

********Código del FormularioPadre*************

Public Class FormPadre
Private xResultado As string

Public WriteOnly Property Resultado() As string
Set(ByVal value As string)
xResultado = value
End Set
End Property

Private Sub TlbBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TlbBuscar.Click

With FormHijo
.FormularioPadre = Me
.ShowDialog()
If CCadena(xResultado) <> "" Then
TxtCodigo.Text = CLong(xResultado)
End If
End Sub
End Class

**********Codigo del Formulario Hijo**************

Public Class FormHijo

Private xFormularioPadre As Form

Public WriteOnly Property FormularioPadre() As Form
Set(ByVal value As Form)
xFormularioPadre = value
End Set
End Property

Private Sub Salir()
Dim Clave as string
Clave="123"

'La siguiente línea me da error, me dice: "'resultado' no es un miembro de 'System.Windows.Forms.Form'"
'xFormularioPadre.resultado = clave


'Esta línea si me funciona correctamente.
FormPadre.Resultado = Clave

Me.Dispose()
End Sub

El problema que tengo es que el formulario hijo puede ser llamado desde formularios distintos y por tanto necesito cambiar el valor de la propiedad resultado desde la variable xFormulariopadre y no desde el formulario 'FormPadre'

Gracias
IDAsuntoFechaNick 
55638 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55626)08/08/11 20:56nfg2k   
Veo que declaras la varialbe resultado como Private, ese debe ser el problema

Prueba con Public, o en todo caso Friend


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55644 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55638)09/08/11 08:18irubio_273   
La variable xResultado es privada al formulario, lo que quiero utilizar desde el formulario hijo es la propiedad Resultado que si está declarada como pública.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55649 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55644)09/08/11 17:16nfg2k   
En ese caso te falta declarar la propiedad tal como haces en el form padre.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55650 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55649)09/08/11 17:53irubio_273   
Lo he probado, pero no es el caso, si declaro la propiedad en el hijo sería para pasarle el valor del padre al hijo que no es el caso.
Lo que necesito es poder llamar a la propiedad Resultado del formulario padre con la variable xFormularioPadre. Cuando hago la llamada FormPadre.Resultado si que me funciona porque estoy referenciando al formulario padre directamente.
El problema es que el formulario padre puede ser cualquier formulario de la aplicación y por ello uso la variable xFormularioPadre.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55659 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55650)10/08/11 23:26nfg2k   
Si, tienes razon, disculpame, leí muy apresuradamente la pregunta.

El problema se da por que 'resultado' no es un miembro de 'System.Windows.Forms.Form' (tal como te lo indica el depurador)

Ya que que la variable 'xFormularioPadre' es de tipo 'Form'.Solo tienes que cambiar la linea que dice: 'Private xFormularioPadre As Form' por 'Private xFormularioPadre As FormPadre'

FormPadre hereda a Form, por tanto, Cualquier FormPadre es un Form. Sin embargo NO cualquier Form es un FormPadre, y esa es la razon del error.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55665 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55626)11/08/11 11:39esmi   
Se me ocurre lo siguiente:
tu pones:
Public WriteOnly Property Resultado() As string
Set(ByVal value As string)
xResultado = value
End Set
End Property

Puede ser que:
Public Property Resultado() As string
Get
return xResultado
end get
Set(ByVal value As string)
xResultado = value
End Set
End Property
Mira a ver.
Saludos


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55691 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55659)16/08/11 10:41irubio_273   
Para hacerlo como me dices:
'Private xFormularioPadre as FormPadre' debo saber cual es el formuario padre que no es mi caso
FormPadre pueden ser varios formularios.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55692 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55665)16/08/11 10:43irubio_273   
Hola, el poner la propiedad Resultado como WriteOnly es porque sólo voy a necesitar que otros formularios cambien el valor xResultado del formulario padre y en ningún caso pasar el valor de xResultado a otro formulario.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55702 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55691)16/08/11 19:47nfg2k   
'Private xFormularioPadre as FormPadre'

Ahi declaras xFormularioPadre como FormPadre, no un formulario padre en especifico sino como una variable capaz de contener cualquier formulario padre. Si no lo crees almenos intentalo.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55735 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55626)28/08/11 04:57CaevX   
Lo que pasa es que cuando declaras el Dim xformulariopadre as form, estad declarandolo como form basicamente y no como formpadre. Para que se convierta en el formulario que desees y sea mas versatil, solo declaralo como objetc

Dim xFormularioPadre As Object

Esto te soluciona todo tu problema, porque si otro tipo de formulario va a ser el padre, no de va a dar error, exceptuando si el formulario padre, no tiene la propiedad resultado.

Espero haberte ayudado.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55738 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55702)28/08/11 10:00irubio_273   
Hola nfg2k, si que lo había probado por descartar, pero así no funciona.

La solución que me ha funcionado es la que me ha propuesto CaevX.

De todas formas muchas gracias por intentar ayudarme.
[Editado: irubio_273, 28/08/2011 10:02:27]


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.
IDAsuntoFechaNick 
55739 Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55735)28/08/11 10:01irubio_273   
Muchas gracias, así funciona perfectamente.

¡¡¡ Muchas gracias !!!


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2026  - foros.elGuille v1.0.6.3 (01/Jun/2021 12:45 GMT +2)  - (ASP.NET v4.0.30319.42000)
 
La hora GMT del servidor es: 12/06/2026 07:55:00 GMT