begin process at 2010 02 10 08:02:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Attends un événement souris


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Attends un événement souris

samedi 13 juin 2009 à 21:08:11 | Attends un événement souris

cheragasalhi


Bonjour,
je veux réaliser une fonction qui attends un événement souris (click) si l'événement click est déclenché alors elle récupère le contrôle pointé par souris.

avez vous une idée?
samedi 13 juin 2009 à 22:42:30 | Re : Attends un événement souris

Robert33

Membre Club
Bonsoir,

Tout dépend du control d'origine, si tu peux trapper l'evenement MouseDown tu doit pouvoir ensuite positioner la propriété capture de la forme, ce qui lui permetra de récuperer l'evenement MouseDown sur un autre controle.
reste plus qu'ensuite à parcourir la liste des control pour savoir ou le click à eu lieu.
Mon explication ne me parait pas claire, donc voila un exemple:
un click sur un picture box déclenche la capture, ensuite on regarde ou le 2eme click à eu lieu/

private  void  pictureBox1_Click(object  sender, EventArgs  e)
{
   this.Capture = true;
   Cursor.Current = Cursors.Hand;
}
private  void Form1_MouseDown(object  sender, MouseEventArgs  e)
{
   this.Capture = false;
   Cursor.Current = Cursors.Default ;
   foreach (Control  c  in  Controls)
   {
      Rectangle  rect = new  Rectangle(c.Location, c.Size);
      if (rect.Contains(e.X, e.Y))
      MessageBox.Show("click in " + c.Name);
   }
}

C# is amazing, enjoy it!
dimanche 14 juin 2009 à 15:36:48 | Re : Attends un événement souris

cheragasalhi

Salut Robert33
Votre réponse est parfaite; mais je pose une question a ce que on peut remplacer votre exemple par un thread écouteur qui reste en coute jusqu'à il détecte un signal (le clic du client) il récupère le contrôle qui a déclanché le clic.

Merci
dimanche 14 juin 2009 à 16:15:46 | Re : Attends un événement souris

Robert33

Membre Club
Réponse acceptée !
Difficilement, car les évenements de souris arrivent par la pompe à messages de windows, et les thread n'y ont pas acces, seule l'application ayant créée le controle le peut.
mais tu peux rendre générique le traitement en déroutant tous les evenements MouseDown de tous les controles vers un même gestionnaire.
pour cela fais une boucle sur la collection de controles de la form (this.Controls) et ajoute un gestionnaire de MouseDown
genre:

private  void  InitMouseDownEvent(Control  C)
{
   foreach ( Control  c  in  C.Controls)
   {
      c.MouseDown += 
new  MouseEventHandler ( Control_MouseDown);
      InitMouseDownEvent(c);
//pour les controls contenus dans le control, type Panel 
   }
}
void   Control_MouseDown( object  sender,  MouseEventArgs  e)
{
}
Dans la methode FormLoad  tu appelles  InitMouseDownEvent ( this );

C# is amazing, enjoy it!
mercredi 17 juin 2009 à 01:54:37 | Re : Attends un événement souris

cheragasalhi

Merci Robert33


Cette discussion est classée dans : souris, click, événement, attends


Répondre à ce message

Sujets en rapport avec ce message

aide click souris..... [ par temp456026 ] bonjourje voudrait réaliser une application qui tourne en fond de tache et qui m'envois un evenement suite a un click souris, mais je ne veut pas ratt Click souris [ par yannou2 ] .On doit faire un projet en C# et on commence à peine ce langage.Je dois gérer le click de la souris et le passage de la souris sur des objets.Il faut Récuperer evenement click Souris - Hook [ par boutnell ] Bonjour,Je voudrais pouvoir connaitre, a chaque instant et sur chaque programme qui tourne, si l'utilisateur click sur sa souris.Par exemple, afficher évenement click de la souris [ par uzu ] salut!j'ai un éditeur qui crée des lignes et des colonnes(des grilles), et partir de cette éditeur , qu'on je  click une fois sur la grille, cette der DoubleClick sans le Click [ par gulix ] Voilà mon problème : j'ai une NotifiyIcon pour mon programme, et j'ai associé des événements au Click et au DoubleClick Seulement, quand je DoubleClic simuler un click de souris [ par M_karim8 ] voila pour le moment j'utilise certaine fonctionne qui reagissent a un clique de la  souris;est il possible de simuler ce click ?. une fonction qui me générer les événements [ par catamenia ] bonjour,Je fais un programme qui cré un nombre aléatoire de picturebox. Le probleme est que j'ai besoin d'un événement click sur chaque pictureBox.S'i événement click sur control [ par citt ] Bonjour,Par code je crée 2 textbox et un bouton et l'evenement click sur le bouton.Mon probleme est que dans l'evenement click je veut recuperer les v Click sur un UsercControl [ par xmox667 ] Salut à tous,J'ai un un UserControl dont l'événement Click est définit et qui contient d'autres contrôles.J'aimerais que l'événement Click se déclench Hook souris [ par Ond9 ] Bonjours à tous.Je cherche à recupèrer le click gauche de ma souris n'importe ou sur l'écrant et dans n'importe quel application,d'après ce que j'ai c


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales