Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Contrôle utilisateur

6 réponses
Avatar
Gilbert Tordeur
Contexte : application Windows Form en VB2008

Bonjour.

J'ai écrit un contrôle utilisateur qui fonctionne correctement. Je voudrais
qu'il génère un événement lorsque sa valeur a changé (comme TextChanged pour
une TextBox par exemple). Que dois-je écrire pour cela ?

Merci d'avance,
Gilbert

6 réponses

Avatar
Jérémy Jeanson
Rien de très compliqué :)

Tu déclares ton event dans ton control
Public Event MonEvent As EventHandler

Ce qui te donnera un event comportant un sender et un eventargs, comme
la plupart des events.

Quand tu veux le déclenché tu utilises la ligne suivante
RaiseEvent MonEvent(me,EventArgs.Empty)

Tu peux bien entendu passer autre chose qu'un eventargs empty, mais si
tu n'en a pas besoin, c'est la l'utilisation la plus banale.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Avatar
Alex C.
On 12 nov, 13:46, Jérémy Jeanson wrote:
Rien de très compliqué :)

Tu déclares ton event dans ton control
Public Event MonEvent As EventHandler

Ce qui te donnera un event comportant un sender et un eventargs, comme
la plupart des events.

Quand tu veux le déclenché tu utilises la ligne suivante
RaiseEvent MonEvent(me,EventArgs.Empty)

Tu peux bien entendu passer autre chose qu'un eventargs empty, mais si
tu n'en a pas besoin, c'est la l'utilisation la plus banale.
--
Jérémy JEANSON
MCPhttp://jeremy.blogdns.net



Ou bien on peut déclarer de cette manière un evènement totalement
personnalisé :

Public Event M_Event(ByVal MyParam As String)
Avatar
Jérémy Jeanson
Avec la petite note, qu'il est conseillé de déclaré un delegate pour ton
eventhadler perso afin d'optimiser les choses et ne pas permettre au
compilateur de créé plusieurs eventhandler différents pour chaque
eventhandler aillant la même signature :)

VB est déjà considéré comme aillant du mal alors ne donnons pas plus de
poids à ses détracteurs ;)
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Avatar
Gilbert Tordeur
Merci,
Gilbert

"Jérémy Jeanson" a écrit dans le message de news:

Rien de très compliqué :)

Tu déclares ton event dans ton control
Public Event MonEvent As EventHandler

Ce qui te donnera un event comportant un sender et un eventargs, comme la
plupart des events.

Quand tu veux le déclenché tu utilises la ligne suivante
RaiseEvent MonEvent(me,EventArgs.Empty)

Tu peux bien entendu passer autre chose qu'un eventargs empty, mais si tu
n'en a pas besoin, c'est la l'utilisation la plus banale.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net


Avatar
Gilbert Tordeur
Un delegate je veux bien, c'est un mot que j'ai déjà entendu, mais mes
connaissances ne vont pas plus loin. Je dois faire quoi ?

Gilbert

"Jérémy Jeanson" a écrit dans le message de news:

Avec la petite note, qu'il est conseillé de déclaré un delegate pour ton
eventhadler perso afin d'optimiser les choses et ne pas permettre au
compilateur de créé plusieurs eventhandler différents pour chaque
eventhandler aillant la même signature :)

VB est déjà considéré comme aillant du mal alors ne donnons pas plus de
poids à ses détracteurs ;)
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net


Avatar
Jérémy Jeanson
C'est très simple, il s'agit de la déclaration du propotipe de ta
méthode, un peu comme un fichier .h en c.

Exemple:

' Le délégate
Public Delegate Sub MonEventDelegate(ByVal e As String)

' L'event qui utilise le delegate
Public Event MonEvent As MonEventDelegate


Et le raiseevent
RaiseEvent MonEvent("Test")

--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net