Bereitstellen von Drag-and-Drop-Funktionen für Dateien in einer Visual C#-Anwendung
In diesem Artikel wird gezeigt, wie Sie drag-and-drop-Funktionen für Dateien in einer Visual C#-Anwendung bereitstellen.
Ursprüngliche Produktversion: Visual C++
Ursprüngliche KB-Nummer: 307966
Zusammenfassung
Die in diesem Artikel beschriebene schritt-für-Schritt-Prozedur veranschaulicht, wie Sie Drag-and-Drop-Funktionen für Dateien in einer Visual C#-Anwendung bereitstellen. Ein ListBox
-Steuerelement wird als Ziel der Datei-Drag-and-Drop-Prozedur verwendet.
Anforderungen
Diese Liste enthält die empfohlene Hardware, Software, Netzwerkinfrastruktur und Service Packs, die Sie benötigen: Visual C#.
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
Windows Forms ListBox control
Windows Forms event handling
Schritte zum Erstellen des Beispiels
Das ListBox-Steuerelement stellt zwei Drag-and-Drop-Ereignisse bereit, die Sie behandeln müssen: DragEnter
und DragDrop
. Das DragEnter
-Ereignis tritt auf, wenn Sie ein Objekt innerhalb der Begrenzungen des Steuerelements ziehen, und wird verwendet, um zu bestimmen, ob das Objekt, das gezogen wird, eines ist, das sie auf dem Steuerelement ablegen lassen möchten. Sie behandeln dieses Ereignis für Fälle, in denen eine Datei oder Dateien in das Steuerelement gezogen werden. Dadurch kann das entsprechende Symbol angezeigt werden, wenn das Objekt über das Steuerelement gezogen wird, abhängig vom Objekt, das gezogen wird. Das DragDrop
Ereignis tritt auf, wenn das Objekt, das gezogen wird, für das Steuerelement freigegeben wurde. Sie behandeln dieses Ereignis, um das -Objekt abzurufen. Das Data-Objekt wird verwendet, um die Daten abzurufen.
Die -Methode des GetData
Data-Objekts gibt ein Array von Zeichenfolgen zurück, die die vollständigen Pfadnamen der Dateien enthalten, die auf das ListBox
Steuerelement gezogen wurden. Sie können diese Dateipfadinformationen verwenden, um alle vorgänge auszuführen, die für die Dateien erforderlich sind. Beispielsweise können Sie Klassen im System.IO
-Namespace verwenden, um die Dateien zu öffnen und zu lesen, die Dateien zu verschieben oder die Dateien an einen neuen Speicherort zu kopieren. In diesem Beispiel fügen Sie einfach den vollständigen Pfad zu den Dateien hinzu, die auf das ListBox
Steuerelement gezogen werden.
Führen Sie die folgenden Schritte aus, um drag-and-drop-Funktionen für Dateien in einer Visual C#-Anwendung bereitzustellen:
Erstellen Sie eine neue Windows Forms-Anwendung in Visual C# .NET oder Visual C# 2005. Form1 wird standardmäßig erstellt.
Verwenden Sie die Toolbox, um form1 ein
ListBox
Steuerelement hinzuzufügen.Ändern Sie im Eigenschaftenfenster die
AllowDrop
Eigenschaft desListBox
Steuerelements in True , damit Objekte auf das Steuerelement gezogen werden können.Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf Form1, und klicken Sie dann auf Code anzeigen.
Um das
DragEnter
Ereignis zu behandeln, fügen Sie die folgende Methode unterhalb des Codeabschnitts hinzu, den das Windows Form-Designer in derForm1
-Klasse generiert: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; }
Um das
DragDrop
Ereignis zu behandeln, fügen Sie die folgende Methode der Klasse hinzu, dieForm1
unmittelbar auf die Methode folgt, die Sie in Schritt 5 hinzugefügt haben: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]); }
Um die beiden Ereignishandler den Steuerelementereignissen zuzuordnen, fügen Sie den folgenden Code im
Form1
Konstruktor nach dem Aufruf von hinzuInitializeComponent
:this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
Erstellen Sie das Projekt, und führen Sie es aus.
Ziehen Sie eine oder mehrere Dateien aus dem Desktop oder einem anderen Ordner in das ListBox-Steuerelement. Der vollständige Pfad der Dateien wird dem
ListBox
Steuerelement hinzugefügt.
References
Weitere Informationen finden Sie auf den folgenden Websites:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für