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 :

Récupérer un ficher déposé en drag & drop


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut Récupérer un ficher déposé en drag & drop
    Hello,

    Je cherche à faire une petite appli dans laquel on va lui donner un fichier en drag&drop, et je souhaiterais récupérer ce fichier (ou son emplacement d'origine en fait ça serait même mieux).

    Je sais qu'il faut aller tapper dans l'event drop de mon composant, mais après je n'ai aucune idée de comment récupérer la localisation de mon fichier.

    Quelqu'un aurait-il déjà fait ça?

    Merci bien et bon dimanche!

    L.

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Dans l'event drop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] droppedFilePaths = e.Data.GetData(DataFormats.FileDrop, true) as string[];

  3. #3
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Sinon pour le drag & drop, tu trouveras facilement une réponse via une recherche sur la toile.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu peux y arriver en mettant ça dans le gestionnaire de ton event Drop :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (e.Data is System.Windows.DataObject &&
        ((System.Windows.DataObject)e.Data).ContainsFileDropList())
      {
        foreach (string filePath in ((System.Windows.DataObject)e.Data).GetFileDropList())
        {
          // Tu mets ici ta logique de traitement du fichier
        }
      }
    Dernière modification par Invité ; 08/05/2011 à 11h54.

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    la variable e représente quoi, le fichier en question?

    Car ma méthode qui va recevoir l'event à la signature suivante:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    private void toolStripMenuItem1_DropDownClosed(object sender, EventArgs e)

    Et pour l'instant mes deux variables n'ont pas de propriété Data ou DataObject :/

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne pense que tu gères le bon évènement
    sur quel composant ou contrôle veux-tu déposer ton ou tes fichiers ?

  7. #7
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Sur un menu en fait

  8. #8
    Invité
    Invité(e)
    Par défaut
    L'évènement que tu dois gérer est Drop et pas l'évènement DropDownClosed.
    Tu trouveras la manière de gérer cette évènement ici.

  9. #9
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Dans ma liste d'évènement je n'ai pas d'évènements drop :/

    Je suis en version .Net 4, est-ce que ça aurait un impact? Je pense pas mais on ne sait jamais.

    L.

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    ToolStripMenuItem et DropDownClosed ne font pas bon ménage en WPF. Tu ne serait pas plutôt en Windows Form auquel cas tu t'es trompé de forum

  11. #11
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Je viens de vérifier et en effet il s'agit de Forms :/ Sorry pas fais exprès

  12. #12
    Invité
    Invité(e)
    Par défaut
    Honte à moi ! Je l'avais pas remarqué !

  13. #13
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Pas grave ^^

    Moi je suis toujours bloqué avec mes évènts et mon menu :s

  14. #14
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    J'ai partiallement trouvé pourquoi je n'avais pas l'event DragDrop: il fallait mettre la propriété AllowDragDrop à true, du coup ça marche mieux là

    Par contre, l'évènement Drag&Drop ne fonctionne pas quand je prend un objet et le Drag sur mon control...

    En fait je pense qu'il faut aller dans l'évènement DragEnter, puis déclancher l'évènement pour faire dérouler le menu, seul soucis c'est que lorsque j'essaye de déclancher l'évènement OnDragOpen (de mémoire...) en appelant l'évènement, j'ai une erreur qui me dit que je ne peux uniquement avoir un évènement du côté gauche d'un += ou -= Oo

    Une petite astuce pour contourner cela?

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [Dojo] Récupérer les valeurs de listes drag-and-drop
    Par sd dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 10/03/2009, 14h03
  3. Réponses: 1
    Dernier message: 10/12/2008, 13h44
  4. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

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