JE N'ARRIVE PAS A UTILIZER 'RAISEEVENT'

Signaler
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
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

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
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
Messages postés
85
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
7 mai 2007

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
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Merci à toi aussi, car je n'utilise pas ces instructions et tu m'as appris des trucs.

Cordialement

CanisLupus