Déclenchement d'events

aydendeliadon Messages postés 19 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 20 avril 2006 - 20 avril 2006 à 12:21
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 20 avril 2006 à 15:33
Bonjour à tous,

Voilà après quelques heures de recherche sur les events je suis parvenu à faire ceci:


'on crée une class pour les modifications sur une valeur
Public Class Valeurchanged
' on Déclare un événement dans cette class
Public Event EventValeurChanged(ByVal valeur As Integer)
' on définit la méthode qui gère l'événement
Sub CauseEvent(ByVal valeur As Integer)
'on ajoute cet événement avec la variable
RaiseEvent EventValeurChanged(valeur)
End Sub
End Class

Dim WithEvents VC As New Valeurchanged

Public Sub valeur_changed(ByVal valeur As Integer) Handles VC.EventValeurChanged
MsgBox("valeur:" & valeur)
End Sub

'Pour des essais je fais ceci:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If i = True Then
Dim str As String
str = TextBox1.Text
valeur = CInt(str)
VC.CauseEvent(valeur)
End If
End Sub

Au départ je voulais créer un event qui se déclenche au moment au je change l'affectation de ma variable valeur, mais je n'y arrive pas. Un petit peu d'aide pourrait m'aider merci.
J'ai déjà penser de vérifier ma variable grâce à un timer mais je préférerais m'en passer si possible, je voudrais déclencher un event lors del'affectation de la variable.
je programme en vb.net

Merci d'avance de votre aide,
Aydendeliadon

8 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
20 avril 2006 à 12:32
Salut,
Il faut abonner tes événements au gestionnaire d'événements.
Essais de cette manière.

Dim VC as New Valeurchanged

Dans ton Form_Load
AddHandler VC.EventValeurChanged, addressof valeur_changed

Valeur_changed
Public Sub valeur_changed(ByVal valeur As Integer)
MsgBox("valeur:" & valeur)
End Sub
0
aydendeliadon Messages postés 19 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 20 avril 2006
20 avril 2006 à 12:48
D'abord merci de m'aider,

Je tiens à signaler que ce que j'ai écrit dans le premier post fonctionne correctement mais que j'aimerais ne pas devoir appeler l'event moi même grâce à VC.CauseEvent(valeur).
J'aimerais que l'event se déclenche comme une textbox_textchanged

Aydendeliadon
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 avril 2006 à 14:08
Salut,

Est ce que tu es en vb6:

Car en VB6 moi je ne peux pas écrire la ligne suivante:

Dim WithEvents VC As New Valeurchanged

Je suis obliger de la faire en deux lignes

Dim WithEvents VC As Valeurchanged

Set VC = NEW ValeurChanged

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
aydendeliadon Messages postés 19 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 20 avril 2006
20 avril 2006 à 14:39
j'ai précisé dans le premier post que j'étais en vb.net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 avril 2006 à 14:58
Re,

Oups vraiment désolé..
Il est vrai que j aurais pu le lire et même le deviner à la vue du code...

Encore une fois j suis confus

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
aydendeliadon Messages postés 19 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 20 avril 2006
20 avril 2006 à 15:07
c'est pas grave julien

je te remercie de t'être penché sur mon problème

aydendeliadon
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
20 avril 2006 à 15:32
Peut-être de cette manière mais la je sèche...

CauseEvent dans ta classe:
Sub CauseEvent(ByVal valeur As Integer)

Static iVal = valeur
If iVal = valeur then RaiseEvent EventValeurChanged(valeur)

End Sub
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
20 avril 2006 à 15:33
Oups
Sub CauseEvent(ByVal valeur As Integer)

Static iVal as Integer = valeur
If iVal = valeur then RaiseEvent EventValeurChanged(valeur)

End Sub
0
Rejoignez-nous