Changer dynamiquement l'action consécutive à un évènement

yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009 - 1 mars 2009 à 15:26
aserf Messages postés 114 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 juillet 2011 - 2 mars 2009 à 21:09
Bonjour,

Est-ce que quelqu'un saurait comment changer dynamiquement la gestion d'un évènement ?

Je m'explique : j'ai un contrôle listbox relié à une base de donnée access. En temps normal, le fait de cliquer sur un élément de la liste affiche différentes valeurs liées à l'élément sélectionné. Je voudrais pouvoir, dans certaines circonstances, empêcher que le click sur un élément de la listbox soit permis (un peu comme le faisait la propriété Locked) mais l'évènement Click, MouseDown ou MouseUp ne sont pas annulables et il n'est manifestement pas possible de caster un évènement MouseEventArgs en CancelEventArgs...

Merci d'avance

5 réponses

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
1 mars 2009 à 19:57
Bonjour Yann

Tu peux interférer dynamiquement avec les évenements d'un contrôle par le subclassing, qui fait appel à la fonction SetWindowLong.

Bon googling.

Amicalement
0
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
1 mars 2009 à 20:36
Salut Orohena,

Je me suis d'abord demandé, en voyant ta réponse, si je ne m'étais pas trompé de forum... mais en fait, j'ai fini par comprendre que tu avais peur que je m'ennuis cette nuit (et les nuits suivantes aussi).

Mais je suis un rebelle ! et après quelques minutes de recherche par google, j'ai hésité entre :
- me remettre à l'anglais (avec l'espoir de comprendre quelque chose sur les différents liens contenant "Subclassing" d'ici quelques années),
- me remettre à jouer au tarot et arrêter définitivement de vaines tentatives de programmation,
- ou alors mettre le SelectionMode de ma listbox à None le temps nécessaire et lui réattribuer sa valeur précédente et l'item sélectionné au moment venu...

Je ne suis pas très doué pour les langues, (pour la programmation non plus, d'ailleurs). Je n'ai aucune envie de jouer au tarot. Donc, je vais reprendre mon cours de VB de M. Plassere. et quand je serai arrivé aux WPF, je referai un tout nouveau control ListBox rine qu'à moi ! Lolllll

Enfin, je te remercie kan même pour ta réponse, mais je compte malgré tout passer une bonne nuit ! Mdrrrr

Amicalement
0
aserf Messages postés 114 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 juillet 2011
2 mars 2009 à 16:50
Bonjour,

Est ce que Removehandler et Addhandler ne pourrai pas regle le probleme ?
il permet d'annuler un evenement et de le reaproprier a la voler,

a++
seb

Développement Rapide PHP / VBNET -> www.database2code.com
0
yannleco Messages postés 10 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 6 mars 2009
2 mars 2009 à 17:55
Salut Seb,


c'est la première chose que j'ai testé, mais les évènements MouseEventArgs ne sont pas annulables, et donc n'ont pas de procédures Cancel associée, et il n'est pas possible de caster un évènement MouseEventArgs en CancelEventArgs...


Donc, à moins que quelqu'un n'ait une autre idée, je vais me contenter de changer le SelectionMode de ma listbox le temps nécessaire


Merci kan même Seb


@ +++
0

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

Posez votre question
aserf Messages postés 114 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 juillet 2011
2 mars 2009 à 21:09
Et passer un boolean a true ou false suivant tes besoin,
et placer en debut d'evenement

if mon_boolean_exit = True then exit Sub,

sa devrai regler ton probleme non ?

a++
seb

Développement Rapide PHP / VBNET -> www.database2code.com
0
Rejoignez-nous