Gestion des évenements avec dotnet

Soyez le premier à donner votre avis sur cette source.

Vue 13 389 fois - Téléchargée 1 824 fois

Description

Petit exemple sans prétention de la gestion des événements en DotNet qui s'adresse surtout a ceux qui viennent de VB6.
En VB6 il était possible de faire des groupes de controles qui portaient le mêeme nom avec un index différent.
En DotNet cette technique n'est pas possible, il faut utiliser les délégués, mais c'est puissant quand on sait comment faire.
J'ai utiliser 2 façons de faire:
- dans la déclaration de l'évenement du premier bouton, en ajoutant les handles des autres boutons.
- Dans le code en utilisant "AddHandler" et "RemoveHandler"

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015

Tout cela est exact, mais c'est juste un bout de code que j'ai fais pour donner en exemple à quelqu'un, et quite à le partager avec quelqu'un, autant le partager sur le site.
Mais si j'ai un peu de temps j'ajouterai la vingtaine de picturebox pour me racheter.
Da'autant que j'ai honte, je suis le premier à faire ces critiques, haa! nul n'est infaillible.
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Quelques remarques:
Il faut toujours coder en Strict et en Explicit
D'où l'erreur ici:

'On récupère le contexte graphique de l'objet survolé
'Cet objet est différent selon le bouton cliqué
Dim g As Graphics = sender.CreateGraphics

'Récupère l'objet qui a envoyé l'événement
Dim PicZone As PictureBox = sender

deviendrait:

'recuper l'objet qui a envoyer l'evenement
Dim PicZone As PictureBox = CType(sender, System.Windows.Forms.PictureBox)

'on recuper le contexte graphic de l'objet survolé qui a envoyer l'evenement
Dim g As Graphics = PicZone.CreateGraphics

de même pour
Dim cmd As Button = sender
-> Dim cmd As Button = CType(sender, System.Windows.Forms.Button)

Et aussi pour
Select Case PicZone.Tag
-> Select Case CType(PicZone.Tag, Integer)

Et quand tu fais:
g = picZone01.CreateGraphics
g.Clear(Color.Beige)
un picZone01.Refresh() suffit, pas la peine de recréer un graphique

Sinon, pour l'exemple il aurait été mieux de faire par exemple la gestion de 20 picturebox crée dynamiquement. (question souvent posé dans le forum)

Voilà, désolé, y'a beaucoup de critiques
(pas noté)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.