CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Ayuda Con Estructura

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa