tcousin
Messages postés4Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention14 juin 2007
-
11 juin 2007 à 10:01
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 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!
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 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( );
}
tcousin
Messages postés4Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention14 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à....
Lutinore
Messages postés3245Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 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.
tcousin
Messages postés4Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention14 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....
Vous n’avez pas trouvé la réponse que vous recherchez ?
tcousin
Messages postés4Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention14 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.