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 :

Drag and drop entre panels


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 60
    Points
    60
    Par défaut Drag and drop entre panels
    Bonjour à tous,

    Je dois réaliser un jeu dans lequel j'ai besoin d'effectuer un déplacement de picturebox entre deux panels situé eux mêmes dans une Windows.Forms

    En gros, j'ai une classe Case qui hérite de la classe Panel, et une case piece qui contient en attribut une picturebox pour la pièce.
    Mon problème provient du fait que la picturebox occupe toute la place du Panel, donc pas moyen de détecter le clic sur le Panel (la case) qui contient une pièce. Par contre, e clic est détecté dans les événements de la picturebox.

    Est ce possible et si oui comment de passer en arrière plan une picturebox pour qu'elle soit seulement affiché et "débrancher" des événements ?
    Comment passer entre deux panels une picturebox ?

    J'espère avoir été clair, merci par avance de vos réponses.

    Regards,
    SgtBor.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    bonjour

    Réponse simple:

    Si tu cherches dans ce forum, tu vas trouver la réponse car la question revient souvent, donc, le nombre de posts traitant ce sujet pullulent

    Bonne recherche...

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 60
    Points
    60
    Par défaut
    Bonjour theMonz,

    J'avais évidemment effectué une recherche dans ce forum mais je n'ai rien trouvé de semblable... si, un post d'une personne tentant de passer des events d'un composant fils à un composant père, ce qui au final, me solutionnerait mon problème, mais il n'explique pas comment il procède.

    Je suis désolé de faire un énième topic sur le sujet (ahah cette redondance funky), mais je suis pas très calé en C#, si quelqu'un pouvait m'indiquer le principe de passer un event d'un composant fils à un composant père, je suis preneur.

    Best Regards,
    SgtBor.

  4. #4
    Membre habitué Avatar de swif79
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 169
    Points
    169
    Par défaut
    Bonjour,
    Tu n’as pas dus beaucoup chercher parce qu'il y a plusieurs méthodes pour ça...
    Je pense que la plus simple est de définir la même méthode de l'évènement click pour tes deux controls.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Panel pan1 = new Panel();
    PictureBox pict1 = new PictureBox();
     
    pan1.Click += new EventHandler(Click_Method);
    pict1.Click += new EventHandler(Click_Method);
     
    private void Click_Method(object sender, EventArgs e)
    {
     
    }

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Mais si j'ai cherché ! Si j'avais trouvé, je ne poserais pas la question, je ne suis pas maso des messages "Google est ton ami" sur les forums, je suis sincerement bloqué !

    J'avais déjà pensé à ton code, sauf que je défini la méthode click de la picturebox dans une classe qui contient en attribut un element pictubrebox, une instance de cette meme classe (piece) est un attribut de ma classe héritant de Panel:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Class Case : Panel {
     
          private Piece p;
          private autreattributs; ....
    }
     
    class Piece {
         private pictureBox pb;
         private autre attributs;
     
         public getPictureBox(); { ...}
    }
    De plus, ma picturebox couvre TOUT la surface de mon panel, donc la méthode "OnClick" de panel est complémement occulté par la méthode OnClick de picturebox.

  6. #6
    Membre habitué Avatar de swif79
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 169
    Points
    169
    Par défaut
    ....
    Sinon ajoute un évènement à la class pièce qui sera levé sur le click de ta pictureBox. Voilà un exemple
    Code : 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
     
    public delegate void PbClickHandler(object sender, EventArgs args);
     
        public class Piece
        {
            private PictureBox pb = new PictureBox();
            public event PbClickHandler PbClicked;
     
            public Piece()
            {
                pb.Click += new EventHandler(pb_Click);
            }
     
            private void pb_Click(object sender, EventArgs e)
            {
                this.OnPbClicked(e);
            }
     
            protected virtual void OnPbClicked(EventArgs args)
            {
                this.PbClicked(this, args);
            }
        }
     
        public class Case : Panel
        {
            private Piece _Piece = new Piece();
     
            public Case()
            {
                this._Piece.PbClicked += new PbClickHandler(_Piece_PbClicked);
            }
     
            private void _Piece_PbClicked(object sender, EventArgs args)
            {
     
            }
        }

Discussions similaires

  1. Drag and drop entre 2 panels
    Par Mariquiqui dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/11/2008, 14h28
  2. Drag and Drop entre 2 panel
    Par elajjouri dans le forum Agents de placement/Fenêtres
    Réponses: 0
    Dernier message: 21/11/2008, 17h25
  3. [Débutant(e)][VB.NET] Drag and drop entre 2 treeviews
    Par - Manuella Leray - dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/10/2005, 15h54
  4. [FLASH MX2004] Drag and drop entre deux List
    Par aldo-tlse dans le forum Flash
    Réponses: 15
    Dernier message: 24/09/2005, 01h10
  5. Drag and Drop entre listbox
    Par zwoke dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/07/2004, 14h10

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