Visual Basic - "Disparar" evento de otro form

Life is soft - evento anual de software empresarial
 
Vista:

"Disparar" evento de otro form

Publicado por Fede (3 intervenciones) el 10/09/2005 23:30:46
Hola, necesito saber como ejecutar el codigo de un evento desde un formulario distinto al que se encuentra el metodo.
Es decir, para ser un poco mas claro:

Quiero que se ejecute el codigo de este evento:

sub cmdButton_Click
codigo
end sub

Desde este otro evento:

sub form_unload
'desde acá quisiera simular el evento anterior
end sub

Se que hay una forma (muy facil) pero me volvi loco buscando en libros y ejemplos y no la pude encontrar. Desde ya muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Respuesta

Publicado por Zoto (41 intervenciones) el 11/09/2005 00:24:47
Evidentemente, este hecho no resulta demasiado complicado.

Teniendo en cuenta que, como regla general, solo se puede acceder a procedimientos, funciones o variables de otros formularios si éstas son públicas,
bastará con declarar el evento (Click del CommandButton, en este caso) como tal, es decir, público.

Así, teniendo un código de evento como este, por ejemplo, en un form llamado Form2:

'---------------------------
'CÓDIGO (FORM RECEPTOR, POR EJEMPLO FORM2)
---------------------------

Private Sub Command1_Click()
'Código de ejemplo:
MsgBox "Hola"
End Sub

'---------------------------
'CÓDIGO
---------------------------

Lo cambiamos a público, simplemente así:

'---------------------------
'CÓDIGO (FORM RECEPTOR, POR EJEMPLO FORM2)
---------------------------

Public Sub Command1_Click()
'Código de ejemplo:
MsgBox "Hola"
End Sub

'---------------------------
'CÓDIGO
---------------------------

Y ahora nos dirijimos al otro formulario des del cual deseamos realizar la llamada y, en el lugar deseado, la realizamos.
En tu caso dices que lo deseas escribir en el evento Unload, para que, cuando el formulario ''emisor'' se cierre, envíe la orden al formulario ''receptor'' que contiene el código (el evento). En este caso el formulario ''receptor'' se llama Form2.
Llamamos al código del evento Click del CommandButton Command1 del formulario receptor (Form2) des de el evento Unload del formulario ''emisor'':

'---------------------------
'CÓDIGO FORM EMISOR (POR EJEMPLO, FORM1)
---------------------------

Private Sub Form_Unload(Cancel As Integer)
Form2.Command1_Click
End Sub

'---------------------------
'CÓDIGO
---------------------------

Simplemente este es el código que debes insertar para realizar lo que deseas.
Como ves, no tiene mucha complicación.

Espero que esto te ayude a resolver tu duda.

Hasta otra,

Zoto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Zoto

Publicado por Fede (3 intervenciones) el 12/09/2005 15:23:33
Si Zoto es la respuesta que estaba buscando y el problema radicaba justamente en hacer "public" el método. Sos muy didáctico....muchísimas gracias!
Fede (Rosario - Argentina)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar