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

Développement Windows Discussion :

Déplacer des Rectangles avec la souris


Sujet :

Développement Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Déplacer des Rectangles avec la souris
    Bonjours

    je souhaiterai savoir comment peut on sélectionné des rectangles et cercle créer grâce a la classe Graphics avec la sourie

    Je suis débutant dans le C# et Winforms et j'aimerai bien qu'une personne me donne un lien sur un tutoriel qui soit assez complet sur tout ce qui concerne les Graphics

    Merci

  2. #2
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 211
    Points
    2 211
    Par défaut
    Bonjour,

    Pour appliquer une telle solution, il vous faut d'abord un espace assez large (de préférence un container de type Panel). Ainsi, le traitement ne s'effectuera que sur les composants enfants. Pour les rectangles sous-jacents, je vous conseille d'utiliser des Panels également. Il ne vous reste plus qu'à jouer avec les events MouseKeyDown, MouseKeyUp et MouseMove :
    • Lors d'un MouseDown, il faut passer un bool à true pour conserver le fait que nous soyons en train de bouger un élément. On conserve aussi la position de départ de l'objet déplacé.
    • Lors d'un MouseKeyUp, on fait l'inverse : le booléen passe à false.
    • Enfin, le plus gros du travail : dans MouseMove, si le booléen de déplacement est à true, alors on déplace le panel en modifiant la propriété Location en réalisant un delta entre les coordonnées conservées et la position de la souris par rapport au Panel parent.


    Les évènements doivent être attachés aux objets déplaçables !

    Voici enfin un code exemple :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    
    namespace test
    {
        public partial class frmPanel :Form
        {
            private Point start;
            private bool isDragging;
        
            public frmPanel()
            {
                InitializeComponent();
            }
            private void panel_MouseDown(object sender, MouseEventArgs e)
            {
                if(e.Button == MouseButtons.Left)
                {
                    start = e.Location;
                    isDragging = true;
                }
            }
    
    
            void panel_MouseUp(object sender, MouseEventArgs e)
            {
                isDragging = false;
            }
    
    
            void panel_MouseMove(object sender, MouseEventArgs e)
            {
                if ( isDragging )
                {
                    Panel panel = (Panel)sender;
                    panel.Location = new Point(panel.Location.X-(start.X-e.X), panel.Location.Y-(start.Y - e.Y));
                }
            }
        }
    }
    


    Bien cordialement.

Discussions similaires

  1. [C#] Déplacer un composant avec la souris
    Par GéniuS77 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/04/2011, 23h12
  2. Déplacer un panel avec la souris
    Par Harry dans le forum Delphi
    Réponses: 14
    Dernier message: 05/06/2006, 19h18
  3. [C++.net]Déplacer un Panel avec la souris
    Par Dlyan dans le forum MFC
    Réponses: 28
    Dernier message: 03/03/2006, 15h36
  4. Déplacer une TImage avec la souris
    Par Ingelishome dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/03/2005, 14h16

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