Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème avec le MouseDoubleClick (.NET) [ Divers / General ] (Apophis)

jeudi 14 septembre 2006 à 19:59:53 | Problème avec le MouseDoubleClick (.NET)

Apophis


hello,

j'ai un problème en vb.net
Mon problème c'est que lorsque l'on fait un double clic sur un controle avec la souris,
ca déclenche d'abord l'évènement "MouseClick" et ensuite "MouseDoubleClick"
Mon problème c'est que je ne veux surtout pas qu'il execute le code du MouseClick quand je fais un doubleclic
J'ai pas trouvé de feinte pour arriver à mes fins

(pour info c'est pour gérer le simple clic et le double clic sur une icone dans la zone de notification en bas à droite(NotifyIcon))

Merci d'avance

jeudi 14 septembre 2006 à 20:43:54 | Re : Problème avec le MouseDoubleClick (.NET)

Charles Racaud

Membre Club
Salut,

On utilise uniquement l'evenement MouseDown et on regarde le temps entre 2 cliques


Private Declare Function GetTickCount Lib "kernel32" () As UInteger
Private Declare Function GetDoubleClickTime Lib "user32" () As UInteger

Private Sub TonNotifyIconOnMouseDown( ByVal Sender As Object , ByVal Args As System.Windows.Forms.MouseEventArgs) Handles TonNotifyIcon.MouseDown
   Dim DoubleClick As Boolean = False
   Static Count As Long = 0
   If Count > 0 AndAlso GetTickCount() - Count < GetDoubleClickTime() Then DoubleClick = True
  Count = GetTickCount()

   If DoubleClick Then
     ' ToDo: DblClick
   Else
     ' ToDo: Click
   End If

End Sub

Kenji


jeudi 14 septembre 2006 à 21:06:48 | Re : Problème avec le MouseDoubleClick (.NET)

Apophis

j'ai pas super compris comment ca marchait, mais une chose est sure ca ne marche pas.

quand tu fais un double clic, il passe 2 fois dans la procédure, la première dans le "Todo: Click" et la 2e fois dans le "Todo: DoubleClick"




jeudi 14 septembre 2006 à 21:29:21 | Re : Problème avec le MouseDoubleClick (.NET)

Charles Racaud

Membre Club

Ah mince quel idiot je fait. J'ai meme pas fait attention à ca alors que c'était le but. Je m'occupais que du double clique.

Kenji


jeudi 14 septembre 2006 à 21:48:15 | Re : Problème avec le MouseDoubleClick (.NET)

Dolphin Boy

Membre Club

Salut, explication from Microsoft :
[ Lien ]

Voir la partie Remarks.

Je ne peut pas tester ce soir mais j'espère que ça t'aidera.


jeudi 14 septembre 2006 à 22:12:21 | Re : Problème avec le MouseDoubleClick (.NET)

Apophis

J'ai fini par trouver une solution grâce à l'aide de Kenji, mais par contre je sais pas comment écrire du code dans un message ...
j'ai beau chercher je vois pas



jeudi 14 septembre 2006 à 22:16:24 | Re : Problème avec le MouseDoubleClick (.NET)

Charles Racaud

Membre Club
Réponse acceptée !
Une solution que j'ai fini par trouvé,

Private Declare Function GetDoubleClickTime Lib "user32" () As UInteger
Private Delegate Sub SimpleClickHandler()
Private DblClickThread As System.Threading.Thread
Private DblClick As Boolean = False

Private Sub WaitForDblClick()
  System.Threading.Thread.Sleep(GetDoubleClickTime())
   MyBase .Invoke( New SimpleClickHandler( AddressOf SimpleClick))
End Sub

Private Sub SimpleClick()
   If DblClick = False Then
     ' ToDo Click
   End If
End Sub

Private Sub TonNotifyIconOnMouseClick( ByVal Sender As Object , ByVal  Args As System.Windows.Forms.MouseEventArgs) Handles TonNotifyIcon.MouseClick
  DblClick = False
   If Not DblClickThread Is Nothing Then DblClickThread.Abort()
  DblClickThread = New System.Threading.Thread( AddressOf WaitForDblClick)
  DblClickThread.Start()
End Sub

Private Sub TonNotifyIconOnMouseDoubleClick( ByVal Sender As System.Object, ByVal  Args As System.Windows.Forms.MouseEventArgs) Handles TonNotifyIcon.MouseDoubleClick
  DblClick = True
   If Not DblClickThread Is Nothing Then DblClickThread.Abort()
   ' ToDo DblClick
End Sub

Si ce que t'as trouvé à partire de ma premiere solution est mieux pourras tu me monter le code stp ?

Kenji


jeudi 14 septembre 2006 à 22:21:02 | Re : Problème avec le MouseDoubleClick (.NET)

Apophis

Ma solution est plus courte mais je sais pas si elle est mieux, par contre je sais pas comment mettre du code dans un message pour qu'il reconnaisse la syntaxe et qu'il colore les instructions ....

jeudi 14 septembre 2006 à 22:22:11 | Re : Problème avec le MouseDoubleClick (.NET)

Charles Racaud

Membre Club

Dolphin Boy> J'ai esseyer avec la methode de ms :

MyBase .SetStyle(ControlStyles.StandardClick, True )
MyBase .SetStyle(ControlStyles.StandardDoubleClick, True )
MyBase .UpdateStyles()

Ca ne change pas grands chose ; on as toujours le click avant le dblclick

Kenji


jeudi 14 septembre 2006 à 22:24:07 | Re : Problème avec le MouseDoubleClick (.NET)

Charles Racaud

Membre Club
Il n'y as pas de coloration syntaxique automatiqe disponible sur le forum. Il faut que tu utilise un programe exterieur.
Mais si tu copie colle le code de vs, il copira aussi la coloration.

Kenji



1 2

Cette discussion est classé dans : problème, net, clic, double, mousedoubleclick


Répondre à ce message

Sujets en rapport avec ce message

Lancement de mon prog au double clic sous windows [ par JuB ] C'est pas tout à fait ça mais je voulais faire court dans le sujet.Sous l'explorateur, quand vous double cliquez sur un fichier, le programme correspo Détecter un double-clic dans la barre de titre [ par Z-Bob ] Salut,Je cherche à switcher la taille d'une fenêtre en double-cliquant sur sa barre de titre mais je ne sais pas comment détecter ce double-clic. Pouv problème avec vb.net A L'AIDE !!!! [ par Hub ] Bonjour,J'ai beaucoup de commandbuttons dans un groupbox et je veux les indexer mais je ne trouve pas la propriété "INDEX" des commandbutton.Avec vstu g un petit problème! [ par DaFunkAd ] ben en faite qd je clic sur licone de visual basic 6 pour linstaler , ben sa me demande:"would you like to instal the visual basic 6 run time files?"e Double clic sur mshflexgrid [ par MrHyDe ] Bonjour, j'utilise un Mshflexgrid pour afficher le résultat d'une requete.j'ai défini que la sélection se faisait par ligne.j'utilise l'evenement DblC vb ne fonctionne plus apres l'install de vb net [ par bguihal ] Système exploitation : Window 2000 pro.problème de compatibilité ADO entre VB 6 et VB NETLe problème est le suivant :Nous developpons sous VB 6 (SP5) Double-clic dans une treeview [ par Wizard17 ] Salut J'aimerais savoir comment on fait pour qu'un treeview prenne en charge le double clic ( sans besoin d'avoir un base de données ).Exemple : J'ai VB6 et .Net installés sur la même machine [ par doggy ] Salut à tous,Juste une question qui sera peut-être bête, mais ça on verra bien ;)J'ai tenté d'installer aujourd'hui Visual Studio .Net, le problème, c Problème lancement commande dos [ par slibar ] Bonjour à tous,Je desirerais lancer des commandes de type net use, net group, net localgroup ... à partir d'un programme VB.Cela fonctionne très bien Problème de Property en VB.NET 2003 [ par Voodoo ] Voilà, j'ai écrit une property dans une Form (Form1). Public Property settext() As System.String Get Return txtlog.Text En


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,655 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.