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 :
Créez une application Windows Forms dans Visual C# .NET ou Visual C# 2005. Form1 est créé par défaut.
Utilisez la boîte à outils pour ajouter un
ListBox
contrôle à Form1.Dans la fenêtre Propriétés , remplacez la
AllowDrop
propriété duListBox
contrôle par True pour permettre aux objets d’être glissés sur le contrôle.Dans Explorateur de solutions, cliquez avec le bouton droit sur Form1, puis cliquez sur Afficher le code.
Pour gérer l’événement
DragEnter
, ajoutez la méthode suivante sous la section de code générée par l’Designer Windows Form dans laForm1
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; }
Pour gérer l’événement
DragDrop
, ajoutez la méthode suivante à laForm1
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]); }
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);
Générez et exécutez le projet.
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 :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour