| ID | Asunto | Fecha | Nick | |
| 55626 | Pasar valor de un formulario a otro mediante propiedad | 04/08/11 18:19 | irubio_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 |
|
| ID | Asunto | Fecha | Nick | |
| 55638 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55626) | 08/08/11 20:56 | nfg2k | | |
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. |
|
| ID | Asunto | Fecha | Nick | |
| 55644 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55638) | 09/08/11 08:18 | irubio_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. |
|
| ID | Asunto | Fecha | Nick | |
| 55649 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55644) | 09/08/11 17:16 | nfg2k | | |
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. |
|
| ID | Asunto | Fecha | Nick | |
| 55650 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55649) | 09/08/11 17:53 | irubio_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. |
|
| ID | Asunto | Fecha | Nick | |
| 55659 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55650) | 10/08/11 23:26 | nfg2k | | |
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. |
|
| ID | Asunto | Fecha | Nick | |
| 55665 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55626) | 11/08/11 11:39 | esmi | | |
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. |
|
| ID | Asunto | Fecha | Nick | |
| 55691 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55659) | 16/08/11 10:41 | irubio_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. |
|
| ID | Asunto | Fecha | Nick | |
| 55692 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55665) | 16/08/11 10:43 | irubio_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. |
|
| ID | Asunto | Fecha | Nick | |
| 55702 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55691) | 16/08/11 19:47 | nfg2k | | |
'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. |
|
| ID | Asunto | Fecha | Nick | |
| 55735 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55626) | 28/08/11 04:57 | CaevX | |  |
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. |
|
| ID | Asunto | Fecha | Nick | |
| 55738 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55702) | 28/08/11 10:00 | irubio_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. |
|
| ID | Asunto | Fecha | Nick | |
| 55739 | Re: Pasar valor de un formulario a otro mediante propiedad (Resp: 55735) | 28/08/11 10:01 | irubio_273 | | |
Muchas gracias, así funciona perfectamente.
¡¡¡ Muchas gracias !!!
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |