Fournir la fonctionnalité glisser-déplacer de fichiers dans une application Visual C#

Cet article explique comment fournir une fonctionnalité glisser-déplacer de fichier dans une application Visual C#.

Version d’origine du produit : Visual C++
Numéro de la base de connaissances d’origine : 307966

Résumé

La procédure pas à pas décrite dans cet article montre comment fournir une fonctionnalité de glisser-déplacer de fichiers dans une application Visual C#. Un ListBox contrôle est utilisé comme destination de la procédure de glisser-déplacer de fichier.

Configuration requise

Cette liste décrit le matériel, les logiciels, l’infrastructure réseau et les Service Packs recommandés dont vous avez besoin : Visual C#.

Cet article suppose que vous êtes familiarisé avec les rubriques suivantes :

  • Windows Forms ListBox control
  • Windows Forms event handling

Étapes de génération de l’exemple

Le contrôle ListBox fournit deux événements glisser-déplacer que vous devez gérer : DragEnter et DragDrop. L’événement DragEnter se produit lorsque vous faites glisser un objet dans les limites du contrôle et est utilisé pour déterminer si l’objet qui est glissé est celui que vous souhaitez autoriser à supprimer sur le contrôle. Vous gérez cet événement pour les cas où un ou plusieurs fichiers sont glissés vers le contrôle. Cela permet d’afficher l’icône appropriée lorsque l’objet est glissé sur le contrôle, en fonction de l’objet qui est déplacé. L’événement DragDrop se produit lorsque l’objet qui est glissé a été libéré sur le contrôle . Vous gérez cet événement pour récupérer l’objet . L’objet Data est utilisé pour récupérer les données.

La méthode de l’objet GetData Data retourne un tableau de chaînes contenant les noms de chemin d’accès complets des fichiers qui ont été glissés vers le ListBox contrôle. Vous pouvez utiliser ces informations de chemin d’accès de fichier pour effectuer les opérations nécessaires sur les fichiers. Par exemple, vous pouvez utiliser des classes dans l’espace System.IO de noms pour ouvrir et lire les fichiers, déplacer les fichiers ou copier les fichiers vers un nouvel emplacement. Dans cet exemple, vous ajoutez simplement le chemin d’accès complet aux fichiers qui sont glissés vers le ListBox contrôle.

Pour fournir la fonctionnalité glisser-déplacer de fichier dans une application Visual C#, procédez comme suit :

  1. Créez une application Windows Forms dans Visual C# .NET ou Visual C# 2005. Form1 est créé par défaut.

  2. Utilisez la boîte à outils pour ajouter un ListBox contrôle à Form1.

  3. Dans la fenêtre Propriétés , remplacez la AllowDrop propriété du ListBox contrôle par True pour permettre aux objets d’être glissés sur le contrôle.

  4. Dans Explorateur de solutions, cliquez avec le bouton droit sur Form1, puis cliquez sur Afficher le code.

  5. Pour gérer l’événementDragEnter, ajoutez la méthode suivante sous la section de code générée par l’Designer Windows Form dans la Form1 classe :

    private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
        if(e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;
    }
    
  6. Pour gérer l’événement DragDrop , ajoutez la méthode suivante à la Form1 classe qui suit immédiatement la méthode que vous avez ajoutée à l’étape 5 :

    private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
        string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false);
        int i;
        for(i = 0; i < s.Length; i++)
            listBox1.Items.Add(s[i]);
    }
    
  7. Pour associer les deux gestionnaires d’événements aux événements de contrôle, ajoutez le code suivant dans le Form1 constructeur après l’appel à InitializeComponent:

    this.listBox1.DragDrop += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
    this.listBox1.DragEnter += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
    
  8. Générez et exécutez le projet.

  9. Faites glisser un ou plusieurs fichiers du bureau ou d’un autre dossier vers le contrôle ListBox. Le chemin d’accès complet des fichiers est ajouté au ListBox contrôle .

References

Pour plus d’informations, consultez les sites Web suivants :