none
Compartir matriz entre Forms VISUAL BASIC 2010 RRS feed

  • Pregunta

  • Buenas,

    Estoy haciendo un programa con validación de usuarios, y necesito compartir entre dos Forms una matriz de Usuarios(14) y Contraseñas(14), alguien sabe cómo??

    Gracias!


    domingo, 28 de febrero de 2016 12:17

Respuestas

  • "GllobetEspinosa" preguntó:

    > necesito compartir entre dos Forms una matriz de Usuarios(14)
    > y Contraseñas(14), alguien sabe cómo??

    Hola:

    Para compartir datos, se encuentren o no definidos en una matriz, puedes declarar las matrices como compartidas en algún módulo estándar existente en tu proyecto:

    Friend Module Module1
    
        Friend Usarios(14) As String
        Friend Contraseñas(14) As String
    
    End Module

    Por defecto, los valores de sus elementos individuales serán Nothing.

    En un Form cualquiera le puedes añadir los valores individuales:

        Module1.Usarios(0) = "Nombre Usario1"
        Module1.Contraseñas(0) = "ContraseñaUsuario1"
    
        Module1.Usarios(1) = "Nombre Usario2"
        Module1.Contraseñas(1) = "ContraseñaUsuario2"
    
        ' etc.

    Y en otro Form cualquiera, leerías los valores:

        Dim user1 As String = Module1.Usuarios(0)
        Dim pwd1 As String = Module1.Contraseñas(0)
    
        Dim user2 As String = Module1.Usuarios(1)
        Dim pwd2 As String = Module1.Contraseñas(1)
    
        ' etc.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 28 de febrero de 2016 15:23
    Moderador
  • "GllobetEspinosa" escribió:

    > Ya he añadido lo que usted me ha propuesto, pero a la hora de definir el
    > Friend Module me da un error en Module:
    >
    > 'Module' statements can occur only at file or namespace level.
    >

    ¿Se puede saber dónde has definido el Module para obtener ese mensaje de error?

    > Es problema de alguna librería?

    El problema no es de ninguna librería, sino de saber cómo se define un Module en Visual Basic. Selecciona el menú Proyecto --> Agregar módulo... Y en el Module que te cree Visual Basic, ahí es donde tienes que insertar las declaraciones de las matrices.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    domingo, 28 de febrero de 2016 17:11
    Moderador
  • No, no es problema de ninguna librería.

    Lo que te indica es que no puedes definir un módulo (Module) dentro de una clase, debe definirse a nivel de namespace o en un archivo separado.

    Lo mejor es que lo crees en un archivo separado, de esta forma tienes localizados los datos compartidos por toda la aplicación. Puedes hacerlo mediante la plantilla de módulos (Agregar -> Nuevo elemento... -> Módulo) e incluir ahí el código que te indicaba Enrique:

    Friend Module Module1
    
        Friend Usarios(14) As String
        Friend Contraseñas(14) As String
    
    End Module

    Evidentemente al módulo puedes darle otro nombre más descriptivo como DatosUsuarios, DatosComunes,...


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 28 de febrero de 2016 17:11

Todas las respuestas

  • "GllobetEspinosa" preguntó:

    > necesito compartir entre dos Forms una matriz de Usuarios(14)
    > y Contraseñas(14), alguien sabe cómo??

    Hola:

    Para compartir datos, se encuentren o no definidos en una matriz, puedes declarar las matrices como compartidas en algún módulo estándar existente en tu proyecto:

    Friend Module Module1
    
        Friend Usarios(14) As String
        Friend Contraseñas(14) As String
    
    End Module

    Por defecto, los valores de sus elementos individuales serán Nothing.

    En un Form cualquiera le puedes añadir los valores individuales:

        Module1.Usarios(0) = "Nombre Usario1"
        Module1.Contraseñas(0) = "ContraseñaUsuario1"
    
        Module1.Usarios(1) = "Nombre Usario2"
        Module1.Contraseñas(1) = "ContraseñaUsuario2"
    
        ' etc.

    Y en otro Form cualquiera, leerías los valores:

        Dim user1 As String = Module1.Usuarios(0)
        Dim pwd1 As String = Module1.Contraseñas(0)
    
        Dim user2 As String = Module1.Usuarios(1)
        Dim pwd2 As String = Module1.Contraseñas(1)
    
        ' etc.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 28 de febrero de 2016 15:23
    Moderador
  • Buenas Enrique M. Montejo.

    Antes de todo agradecerle la respuesta.

    Ya he añadido lo que usted me ha propuesto, pero a la hora de definir el Friend Module me da un error en Module:

    'Module' statements can occur only at file or namespace level.

    Es problema de alguna librería? Gracias de antemano

    domingo, 28 de febrero de 2016 16:21
  • No, no es problema de ninguna librería.

    Lo que te indica es que no puedes definir un módulo (Module) dentro de una clase, debe definirse a nivel de namespace o en un archivo separado.

    Lo mejor es que lo crees en un archivo separado, de esta forma tienes localizados los datos compartidos por toda la aplicación. Puedes hacerlo mediante la plantilla de módulos (Agregar -> Nuevo elemento... -> Módulo) e incluir ahí el código que te indicaba Enrique:

    Friend Module Module1
    
        Friend Usarios(14) As String
        Friend Contraseñas(14) As String
    
    End Module

    Evidentemente al módulo puedes darle otro nombre más descriptivo como DatosUsuarios, DatosComunes,...


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 28 de febrero de 2016 17:11
  • "GllobetEspinosa" escribió:

    > Ya he añadido lo que usted me ha propuesto, pero a la hora de definir el
    > Friend Module me da un error en Module:
    >
    > 'Module' statements can occur only at file or namespace level.
    >

    ¿Se puede saber dónde has definido el Module para obtener ese mensaje de error?

    > Es problema de alguna librería?

    El problema no es de ninguna librería, sino de saber cómo se define un Module en Visual Basic. Selecciona el menú Proyecto --> Agregar módulo... Y en el Module que te cree Visual Basic, ahí es donde tienes que insertar las declaraciones de las matrices.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    domingo, 28 de febrero de 2016 17:11
    Moderador
  • Arreglado. Muchas gracias!
    domingo, 28 de febrero de 2016 17:41