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

Windows Forms Discussion :

Problème de Drag & Drop entre PictureBox V2


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Par défaut Problème de Drag & Drop entre PictureBox V2
    Bonjour à tous,

    Je me suis mis récemment au C# et je me trouve déjà face à un problème. Comme le suggère mon titre, je souhaite faire du Drag & Drop entre deux PictureBox. Et c'est bien là qu'est le problème, le D&D ne veut pas s'effectuer.

    J'ai le code suivant :
    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
     private void Table_Load(object sender, EventArgs e)
            {
                CarteHS1.AllowDrop = true;
                CarteHS2.AllowDrop = true;
            }
     
            private void CarteHS1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    CarteHS1.DoDragDrop(CarteHS1.Image, DragDropEffects.All);
                }
            }
     
            private void CarteHS2_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.Bitmap))
                    e.Effect = DragDropEffects.Move;
                else
                    e.Effect = DragDropEffects.None; 
            }
     
            private void CarteHS2_DragDrop(object sender, DragEventArgs e)
            {
                if ((e.Data.GetDataPresent(DataFormats.Bitmap)))
                    this.CarteHS1.Image = (Bitmap)(e.Data.GetData(DataFormats.Bitmap));
            }
    Je me suis dis qu'il devait y avoir une erreur, que j'avais mal lu mon bouquin, donc j'ai fait des recherches sur le forum et sur Internet et à chaque fois, je retombe sur le même code à la différence prêt qu'il fonctionne chez les autres.

    Je n'arrive pas à savoir ce que j'ai pu oublié ou mal faire.
    A savoir que quand je fais glisser l'image depuis la PictureBox CarteHS1 vers CarteHS2, le curseur change au-dessus de CarteHS2 pour m'indiquer que le D&D est autorisé mais l'image ne bouge pas pour autant, elle n'est même pas recopiée.

    Merci d'avance pour le coup de main.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ton code est parfaitement correct, à un petit détail près : dans CarteHS2_DragDrop, tu affectes l'image à CarteHS1 et non à CarteHS2

  3. #3
    Membre confirmé Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Par défaut
    Citation Envoyé par tomlev Voir le message
    ton code est parfaitement correct, à un petit détail près : dans CarteHS2_DragDrop, tu affectes l'image à CarteHS1 et non à CarteHS2
    Normal. Initialement, j'avais mis CarteHS2 mais dans certain code, j'avais vu qu'il était mis l'équivalent de mon CarteHS1 (le pictureBox1 de chaque code fournit sur le net).

    Je viens de repasser à CarteHS2 et... Ca ne fonctionne toujours pas !
    Le curseur change bien pour m'indiquer que le Drag & Drop est autorisé mais l'image n'est pas déplacée.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ben je viens de tester avec exactement le même code, et chez moi ça marche...

  5. #5
    Membre confirmé Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Par défaut
    Tu as généré un exécutable ou tu te contentes de compiler / exécuter avec F5 ? Moi j'utilise la seconde solution.

    Il est possible que tu m'envoies ton projet pour que je regarde ce que ça donne chez moi ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Tuttu Voir le message
    Tu as généré un exécutable ou tu te contentes de compiler / exécuter avec F5 ? Moi j'utilise la seconde solution.
    Ca revient au même : quand tu fais F5, ça génère l'exe et ça l'exécute

    Citation Envoyé par Tuttu Voir le message
    Il est possible que tu m'envoies ton projet pour que je regarde ce que ça donne chez moi ?
    Je vais pas t'envoyer tout le projet parce qu'il y a plein de trucs dedans (c'est le projet où je fais tous mes tests...), mais voilà le code concerné :


    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
        public partial class TestDnD : Form
        {
            public TestDnD()
            {
                InitializeComponent();
                pictureBox2.AllowDrop = true;
            }
     
            private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    pictureBox1.DoDragDrop(pictureBox1.Image, DragDropEffects.All);
                }
            }
     
            private void pictureBox2_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.Bitmap))
                    e.Effect = DragDropEffects.Move;
                else
                    e.Effect = DragDropEffects.None;
            }
     
            private void pictureBox2_DragDrop(object sender, DragEventArgs e)
            {
                if ((e.Data.GetDataPresent(DataFormats.Bitmap)))
                    this.pictureBox2.Image = (Bitmap)(e.Data.GetData(DataFormats.Bitmap));
            }
        }
    Mais bon, vu que j'ai essentiellement copié/collé ton code, te ne devrais pas trouver beaucoup de différences...

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

Discussions similaires

  1. [VBA-E]drag and drop entre deux listbox
    Par Yolak dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/06/2012, 14h37
  2. Drag and Drop entre 2 JTree
    Par Lebas dans le forum Composants
    Réponses: 1
    Dernier message: 07/02/2007, 11h59
  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