[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
3246
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
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
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
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
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
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
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
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
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