Bereitstellen von Datei-Drag-and-Drop-Funktionen in einer Visual C#-Anwendung
In diesem Artikel wird gezeigt, wie Sie Datei-Drag-and-Drop-Funktionen in einer Visual C#-Anwendung bereitstellen.
Originalversion des Produkts: Visual C++
Ursprüngliche KB-Nummer: 307966
Zusammenfassung
Das schrittweise Verfahren, das in diesem Artikel beschrieben wird, veranschaulicht, wie Sie dateibasierte Drag-and-Drop-Funktionen in einer Visual C#-Anwendung bereitstellen. Ein ListBox Steuerelement wird als Ziel der Datei-Drag-and-Drop-Prozedur verwendet.
Anforderungen
In dieser Liste sind die empfohlenen Hardware, Software, Netzwerkinfrastruktur und Service Packs aufgeführt, die Sie benötigen: Visual C#.
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
Windows Forms ListBox controlWindows Forms event handling
Schritte zum Erstellen des Beispiels
Das ListBox-Steuerelement bietet zwei Drag-and-Drop-Ereignisse, die Sie behandeln müssen: DragEnter und DragDrop. Das DragEnter Ereignis tritt auf, wenn Sie ein Objekt innerhalb der Grenzen des Steuerelements ziehen, und wird verwendet, um zu bestimmen, ob das gezogene Objekt ein Objekt ist, das Sie für das Steuerelement ablegen möchten. Sie behandeln dieses Ereignis für Fälle, in denen eine Datei oder Dateien auf das Steuerelement gezogen werden. Dadurch kann das entsprechende Symbol angezeigt werden, wenn das Objekt je nach gezogenem Objekt über das Steuerelement 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 zum Abrufen der Daten verwendet.
Die Methode des Data-Objekts GetData 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. Sie können beispielsweise 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 dateibasierte Drag-and-Drop-Funktionen 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
ListBoxSteuerelement hinzuzufügen.Ändern Sie im Eigenschaftenfenster die
AllowDropEigenschaft desListBoxSteuerelements in "True ", damit Objekte auf das Steuerelement gezogen werden können.Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf "Formular1", und klicken Sie dann auf "Code anzeigen".
Fügen Sie zum Behandeln des
DragEnterEreignisses die folgende Methode unterhalb des Codeabschnitts hinzu, den der Windows Formular-Designer in derForm1Klasse 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; }Fügen Sie zur Behandlung des
DragDropEreignisses die folgende Methode zur Klasse hinzu, dieForm1unmittelbar 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
Form1Konstruktor nach dem Aufruf vonInitializeComponent: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 auf das ListBox-Steuerelement. Der vollständige Pfad der Dateien wird dem
ListBoxSteuerelement hinzugefügt.
References
Weitere Informationen finden Sie auf den folgenden Websites: