[VB] gestion d'evenement entre 2 forms

[Résolu]
Signaler
Messages postés
18
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
21 mars 2007
-
Messages postés
18
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
21 mars 2007
-
Bonjour,
J'ai créé une classe myevent (dans un module de classe) dont le code est le suivant:
'''--------myevent
Private decevent As Boolean
Public Event saisievent()
Public Property Let affectevent(ByVal vData As Boolean)
'Affectation d'une nouvelle valeur
    decevent = vData
    RaiseEvent saisievent
End Property
   
Public Property Get lectevent() As Boolean
'Lecture de la valeur
    lecevent = decevent
End Property
'________________________________

cette classe va me permettre de declencher un evenement dans ma form1 qd une condition se realise par exemple dans ma form1:
'__________form1
Public withenevents event1 as myevent
.....
sub insert()
....
Set event1 = New myevent
event1.affectevent = True
end sub
'______________________________________________

et je veux que le traitment apres le declenchement du evenement se poursuit (puisque elle est public je crois qu elle est reconnu dans ma form2) dans ma  form2
'_______Form2__________________________
Private Sub event1_saisievent()
...
End Sub
'_________________________________

Mon problème est que event1_saisievent() n'est pas reconnu dans ma 2 eme form donc le traitement apres declenchement ne s'effectue pas.;
j ai essayé de declarer event1 dans un module bas mais le probleme c'est qu il accepte juste la declaration suivante :
"Public event1 as myevent"
mais il n'accepte pas cette declaration "Public withenevents event1 as myevent" avec withevents et cette derniere est essentiel pour le declenchement des evenements.;

SVP une aide parce que la je blok totalement
merci d'avance

2 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Je ne sais pas si cela peut t'aider mais tu peux essayer la chose suivante.
Avec le meme code pour ta classe MyEvent

'====================================
'====Code du form1===================
'====================================
Option Explicit 
Private WithEvents Event1 As MyEvent 

Private Sub Event1_saisievent() 
MsgBox "Form1" 
End Sub 

Private Sub Form_Load() 
Set Event1 = New MyEvent 
Call Form2.InitEvent(Event1) 
Event1.affectevent = True 
End Sub 

'====================================
'====Code du form2===================
'====================================
Option Explicit 
Private WithEvents Event2 As MyEvent 

Private Sub Event2_saisievent() 
MsgBox "Form2" 
End Sub 

Public Sub InitEvent(ClsEvent As MyEvent) 
Set Event2 = ClsEvent 
End Sub 

 

<small> Coloration syntaxique automatique [AFCK]</small>
   

Attention car de cette maniere Form1 et Form 2 pointent vers le même objet (si je ne me trompe pas)

@+,   Ju£i?n
Messages postés
18
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
21 mars 2007

Merci beaucoup
ca marche bien en fait les 2 forms pointent sur un meme objet ce qui donne une infinité de declenchement mais c pas grave j ai remedié ce probleme.
thanks lot and take care