JE N'ARRIVE PAS A UTILIZER 'RAISEEVENT'

Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007 - 9 juin 2004 à 19:23
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 15 juin 2004 à 19:59
SIMON LEBON:

Je cherche a capturer un event d'une form a partir d'une autre. J'ai ce code ci-dessous mais l'evenement n'est pas declenché. Pourquoi?

Dans Form1 j'ai:
'*******************************
'*******************************

Private WithEvents fm As Form2

Private Sub Form_Load()
Set fm = New Form2
Load fm
fm.Hide
End Sub

' Je montre Form2 dans laquelle un bouton
' Declenche l'evenement Test
Private Sub Command1_Click()
Form2.Show
End Sub

' Ici l'evenement que je veux capturer
' (c'est ce qui ne marche pas)
Public Sub fm_Test()
MsgBox "OK"
End Sub
'*******************************
'*******************************

Dans Form2 j'ai:

'*******************************
'*******************************
' Declaration de l'event
Public Event Test()

' Declenchement de l'event...ça ne fait rien!
Private Sub Command1_Click()
RaiseEvent Test
End Sub
'*******************************
'*******************************

3 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
9 juin 2004 à 21:02
Salut,

Et si tu fais comme ça, ça marche, ça te suffit ?

'Ds form1
Private Sub Form_Load()
Dim fm As Form
Set fm = New Form2
Load fm
fm.Hide
End Sub

' Je montre Form2 dans laquelle un bouton
' Declenche l'evenement Test
Private Sub Command1_Click()
Form2.Show
End Sub

' Ici l'evenement que je veux capturer
' (c'est ce qui ne marche pas)
Public Sub fm_Test()
MsgBox "OK"
End Sub

'ds form2
' Declenchement de l'event
Private Sub Command1_Click()
Form1.fm_Test
End Sub

Cordialement

CanisLupus
0
Silmon Messages postés 85 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 7 mai 2007
15 juin 2004 à 12:06
SIMON LEBON:
Je te remercie pour ta réponse CanisLupus
Effectivement ça marche. Mais cela ne me convient pas.
Les instructions 'events' sont utilisées pour ne pas avoir a connaitre la form qui les capturent.

Dans ton code tu mets:

Form1.fm_Test

Mais je ne sais pas le nom de la form qui appelle form2.
Cela peut etre n'importe quelle form.
Form2 doit restée une form 'partagée', independente de tout project (comme par ex une form de recherche)

Mais j'ai decouvert mon erreur. C'etait tout bete.

Dans Form1 j'ai:
'*******************************
'*******************************

Private WithEvents fm As Form2

Private Sub Form_Load()
Set fm = New Form2
' Load fm -> inutil
' fm.Hide -> inutil
End Sub

' Je montre Form2 dans laquelle un bouton
' Declenche l'evenement Test
Private Sub Command1_Click()
' Au lieu de...
'Form2.Show ' <-- L'ERREUR ETAIT ICI
' Il fallait mettre:
fm.show
End Sub

' Ici l'evenement que je veux capturer
' (Maintenant ça marche)
Public Sub fm_Test()
MsgBox "OK"
End Sub
'*******************************
'*******************************

Dans Form2 j'ai:

'*******************************
'*******************************
' Declaration de l'event
Public Event Test()

' Declenchement de l'event
Private Sub Command1_Click()
RaiseEvent Test
End Sub
'*******************************
'*******************************

Je te remercie.
Cordialement
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
15 juin 2004 à 19:59
Merci à toi aussi, car je n'utilise pas ces instructions et tu m'as appris des trucs.

Cordialement

CanisLupus
0