CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Ayuda Con Estructura
junahu:
Hola amigos, quisiera saber como una función creada en una clase retorne una estructura como valor a otro formulario.
Yo creo la estructura en la Clase y cuando ejecuto la función, en return mando la estructura. Aquí veo que si manda la estructura y que está bien.
Cuando llega al formulario, que es el que manda realizar la función, me da el error "La conversión especificada no es válida".
En el formulario he creado otra estructura para que recoja el retorno de la función. Esta estructura tiene los mismos elementos que la de la Clase.
Gracias por leer y si podeis ayudarme os lo agradezco..
:comp:
senzao18:
Tienes que declarar una estrucutra del tipo Clase.Structure....
Por que para VB.Net la estructura
Form1.Structure y Class.Structure son diferentes.......Aunque tenga los mismos elementos...
junahu:
Gracias por contestar senzao18. ¿Pero podrías como hacerlo?
yo para declarar las estructuras lo hago así:
Structure TipoTamano
Dim Tipo As String
Dim Tamano As String
End Structure
tanto en las Clases como en el Formulario.
Pero estoy perdido en darles los tipos Clase.Structure y Form1.Structure
No encuentro en Internet datos para ello.
Gracias de nuevo y saludos.
senzao18:
Bueno creo que me explique maL.....
Por ejemplon si esa estructura la tienes en un proyecto de clases...
para mandarla llamar seria algo asi...
Supongamos que la estructura esta en el archivo MyClass.vb que tiene la siguente forma:
--- Código: Text --- Public Class MyClass Friend Function AplicarTraslado(ByVal dsTraslado As DataSet) As StatusAplicarTraslado Return oSAT End Function Public Class MyClass Public Structure StatusAplicarTraslado Private strFolioTraslado As String Dim ME21N As Boolean Dim ME22N As Boolean Dim MB1B As Boolean Dim Diferencias As Boolean Dim Centro As String Dim FolioMB1B As String Public Property FolioTraslado() As String Get Return strFolioTraslado End Get Set(ByVal Value As String) strFolioTraslado = Value If Value <> String.Empty Then ME21N = True Else ME21N = False End If End Set End PropertyEnd Structure
Cuando yo quiere reciber esa estructura desde un form yo tengo que declararla y usarla mas o menos asi.
Dim oMyClass as new MyClass
Dim oSAT as MyClass.Structure StatusAplicarTraslado
oSat = oMyClass.AplicarTraslado
Y listo con eso ya no marca error.
Si quieres el ejemplo mas completo solo pidelo... Bueno aunque creo que con esto ya no tendras dudas...
junahu:
Muchas gracias senzao18, he conseguido que funcione.
Resulta que no tengo que crear otra estructura en el formulario para conseguir los datos de la estructura de la clase, solo llamo desde el formulario a la función de la clase (le devuelve los valores de la estructura), y ya está, desde el formulario puedo acceder a los datos de la estructura de la clase.
En la clase (MiClase):
-creo la estructura:
Structure TipoTamano
Dim Tipo As String
Dim Tamano As String
End Structure
-creo un objeto de la estructura:
Public MandoDatos As TipoTamano
-en cierta parte creo la función:
Public Function TamanoDatos(…)
…
MandoDatos.Tamano = dato1
MandoDatos.Tipo = dato2
Return MandoDatos
End Function
En el formulario hijo (FormularioHijo):
- En un Sub:
FormularioPadre.MiClase.TamanoDatos(…)
Dim DatoStructura1 as string= FormularioPadre.MiClase.MandoDatos.Tipo
Dim DatoStructura2 as string= FormularioPadre.MiClase.MandoDatos.Tamano
¿Que te parece? Así funciona.
Navegación
[#] Página Siguiente
Ir a la versión completa