Principales respuestas
¿Cómo puedo hacer para acceder a un control en un procedimiento que es llamado desde un formulario (propietario del control) y desde un módulo?

Pregunta
-
Necesito usar el procediento en un módulo y en un formulario. El procedimiento hace referencia a controles de ese mismo formulario desde donde lo llamo. Ojalá lo haya explicado con claridad.
-------------------
Resumiendo:
Formulario1 ==> Llama al procedimientoX que hace referencia a controles de ese Formulario1.
Modulo1 ==> Alberga el procedimientoX (usado en Formulario1 y Modulo2)
Modulo2 ==> Llama al procediientoX (por tanto hace también referencia a controles de Formulario1)
-------------------
Lo que quiero saber es cómo le paso el parámetro al procedimiento (que haga referencia al formulario) cuando lo llamo desde el Módulo2 y desde el control (entiendo que en el formulario le pasaría Me pero en el módulo?)
- Editado James-2016 sábado, 2 de abril de 2016 1:14
Respuestas
-
Hola James,
al método del Modulo2 tendrías que pasar también la instancia del formulario a utilizar:
' Método Modulo1 Public Shared Sub MetodoModulo1(formulario As Form) ' Tratamiento de los controles del formulario End Sub ' Método Modulo2 Public Shared Sub MetodoModulo2(formulario AS Form) ' Tratamiento método módulo 2 MetodoModulo1(formulario) End Sub
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...- Marcado como respuesta James-2016 sábado, 2 de abril de 2016 8:17
Todas las respuestas
-
El procedimiento X tendría que recibir un parámetro del tipo Formulario1. Al llamarlo desde una instancia del Formulario1, le pasarías el Me, que representa precisamente dicha instancia.
Al llamarlo desde el Formulario2, tienes que pasarle la instancia del Formulario1, y ahora ya no existe ningún truco automático (como el Me) para obtener dicha instancia. Necesariamente tendrás que conservar la instancia guardándola desde el sitio de tu programa en el que instancies el Formurario1, dentro de alguna variable cuya visibilidad la haga accesible al Formulario2 (podría ser una variable Public Shared en una clase, o una variable en un módulo).
Dicho eso, esta forma de trabajar es bastante "chapucera", pues introduce interdependencias entre los objetos que a la larga harán que la aplicación sea difícil de mantener. Sería preferible replantearse este diseño para que no ocurran este tipo de circuitos en los que un módulo o un formulario deban "conocer" el contenido interno de otro formulario distinto. Podría definirse una Interfaz, o un sistema de eventos para actualizar un formulario desde el otro o desde un módulo, en lugar de acceder desde fuera a los controles internos.
-
Hola James,
al método del Modulo2 tendrías que pasar también la instancia del formulario a utilizar:
' Método Modulo1 Public Shared Sub MetodoModulo1(formulario As Form) ' Tratamiento de los controles del formulario End Sub ' Método Modulo2 Public Shared Sub MetodoModulo2(formulario AS Form) ' Tratamiento método módulo 2 MetodoModulo1(formulario) End Sub
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...- Marcado como respuesta James-2016 sábado, 2 de abril de 2016 8:17
-
-