[Compact Framework] Evenement MouseUp indisponible

tcousin Messages postés 4 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 14 juin 2007 - 11 juin 2007 à 10:01
Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 15 juin 2007 à 02:12
Bonjour,

Je développe sur Pocket PC sous Windows Mobile 5 et le Compact Framework 2.0.
Je viens de m'apercevoir que l'évènement MouseUp n'était pas pris en charge pour le controle Button.
J'ai essayé plusieurs alternative pour résoudre ce problème:
- caster mon "Button" en "Control" car Control prend en charge MouseUp
- superposer une picturebox (qui prend en charge MouseUp) sur mon boutton

Mais hélas, ces 2 "bidouilles" ne fonctionnent pas!

Si quelqu'un à une idée pour résoudre mon problème, je suis preneur!

Merci à vous,

Tom

7 réponses

Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 juin 2007 à 12:26
Salut, je ne suis pas habitué au dev sous compact framework.. Normalement on override la methode WndProc du control ou bien on implemente IMessageFilter, voir on  installe un hook bien que c'est un lourd juste pour un MouseUp, si toutes ces solutions ne sont pas disponiblent sous le compact framework..

Button b = new Button( );
b.Parent = this;
b.MouseDown += delegate
{
    while ( Control.MouseButtons != MouseButtons.None )
    {
        System.Threading.Thread.Sleep( 250 );
        Application.DoEvents( );
    }


    MessageBox.Show( "MouseUp !" );
};
0
tcousin Messages postés 4 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 14 juin 2007
11 juin 2007 à 16:15
Je te remercie de ton aide.
Ton idée d'override paraissait bonne.
Hélas je viens de m'apercevoir que la classe Message qui permet de manipluer les message issus de l'OS n'est pas disponible dans le CF.
C'est vraiment pas évident de développer dans cet environnement, il manque pas mal de truc bien utiles!

Du coup, je suis un peu à cours d'idées sur ce coup là....
0
Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 juin 2007 à 19:12
Et le code que je viens de donner ça ne convient pas ? Ca ne va pas tourner dans la boucle bien longtemps, l'utilisateur va bien finir par le lâcher ce bouton de souris,j'pense pas qu'il va le maintenir enfoncé toute une journée.
0
tcousin Messages postés 4 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 14 juin 2007
12 juin 2007 à 08:29
En fait, ce sont tous les évènements liés à la souris (MouseUp, MouseDown,...) qui ne sont pas pris en charge. Donc ton code ne résout hélas pas mon probleme.
Ce que je ne comprends pas, c'est que la classe Control dispose de ces évènements alors que la classe button, qui hérite de Control, n'en dispose pas!
Vraiment bizarre....
0

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

Posez votre question
Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
14 juin 2007 à 00:38
Exact l'évènement MouseDown n'est pas disponible mais l'évènement Click lui l'est, suffit juste de modifier dans mon code le nom de l'évènement.
0
tcousin Messages postés 4 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 14 juin 2007
14 juin 2007 à 09:04
En effet, il y a l'évènement Click, mais cet évènement est déclenché apres avoir relaché le bouton (équivaut à un MouseDown + MouseUp).
Du coup il rentre dans le delegate seulement quand j'ai relaché le bouton, et il ne rentre pas dans ta boucle vu que les boutons de la souris sont relachés....
Je desespere....
Je suis en train d'essayer de fabriquer des boutons avec des picturebox,... (Les evenenements de la souris sont disponible sur ce controle!).
Mais je trouve ça vraiment curieux qu'ils les aient mis sur un PictureBox et pas sur un bouton !!!!

En tout cas, je te remercie quand meme de ton aide.

Tom
0
Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
15 juin 2007 à 02:12
En effet, il y a l'évènement Click, mais cet évènement est déclenché apres avoir relaché le bouton ...


Ah mince, désolé, j'ai pas le CP d'installé mais j'avais pourtant testé avant sur le framework, ça marchait bien.
0
Rejoignez-nous