IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] Mouse click event : comment implémenter ?


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut [C#] Mouse click event : comment implémenter ?
    Bonjour !

    Je dispose d'un tableau de rectangles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabRectangle[i, j] = new Rectangle(x, y, rectangleSize, rectangleSize);
    (qui me servent pour contenir des objets GDI+)

    comment faire pour ajouter un "mouse click event" sur chaque rectangle (exemple de code C#) de manière à ce que lorsque je clique sur l'un d'entre eux, celà me redirige vers telle méthode (mouseClickEventHandler) par exemple ?

    Merci d'avance !

    editer par neguib pour

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Tu ne peux pas le faire directement, pour celà il te faut un derivé de la classe Control, donc pour recupérer un Click il te faut passer par le support du Rectangle en capturant par exemple l'event MouseDown du Control qui te permet de recupérer les coordonnées du Click
    Une idée serait d'avoir ton UserControl Rect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class Rect : UserControl
    {
      //...
    }
    tu peux y substituer les delegate souhaités et y dessiner directement tout ce que tu veux en fonction
    Ainsi il te reste à modifier ton tabRectangle en
    la suite tu t'en doutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Rect r = new Rect();
    r.Location = new Point(x,y);
    r.Size = new Size(rectangleWidth,rectangleHeigth);
    r.MouseDown += new MouseEventHandler(MaMethodeMouseDown);
    tabRectangle[i] = r;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 65
    Points
    65
    Par défaut
    Merci pour l'aide, ça m'a donné une nouvelle idée, et mnt je m'en sors !

    Je n'utilise plus un écouteur d'évenements sur chq rectangle, mais je détecte simplement la position du curseur dans ma pictureBox, et selon ça je peut calculer l'endroit où placer le pion (selon leur taille, et le nombre de pions en X et Y)

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Get mouse coord X,Y from figure by click.event
    Par benjame dans le forum Calcul scientifique
    Réponses: 11
    Dernier message: 08/09/2012, 14h32
  2. Checkbox mouse click event distinctement de treenode m. cl. ev.
    Par Chavadam dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/08/2010, 17h00
  3. Comment implémenter lemonldap?
    Par Aldo dans le forum Apache
    Réponses: 7
    Dernier message: 25/01/2007, 22h32
  4. Réponses: 19
    Dernier message: 15/05/2006, 17h50
  5. Comment implémenter un Datawarehouse ?
    Par raslain dans le forum Alimentation
    Réponses: 2
    Dernier message: 20/10/2005, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo