Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird gezeigt, wie Sie in einer Visual C#-Anwendung Datei-Drag-and-Drop-Funktionen bereitstellen.
Originalproduktversion: Visual C++
Ursprüngliche KB-Nummer: 307966
Zusammenfassung
Die schrittweise Vorgehensweise, die in diesem Artikel beschrieben wird, veranschaulicht das Bereitstellen von Drag-and-Drop-Funktionen für Dateien in einer Visual C#-Anwendung. Ein ListBox
Steuerelement wird als Ziel der Drag-and-Drop-Prozedur der Datei verwendet.
Anforderungen
In dieser Liste werden die empfohlenen Hardware-, Software-, Netzwerkinfrastruktur- und Service Packs beschrieben, 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 Grenzen des Steuerelements ziehen und verwendet werden, um zu bestimmen, ob das objekt, das gezogen wird, eines 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 über das Steuerelement gezogen wird, je nachdem, welche Objekte gezogen werden. Das DragDrop
Ereignis tritt auf, wenn das gezogene Objekt 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 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. 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 Datei-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. Formular1 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 in Projektmappen-Explorer mit der rechten Maustaste auf "Formular1", und klicken Sie dann auf "Code anzeigen".
Um das
DragEnter
Ereignis zu behandeln, fügen Sie die folgende Methode unterhalb des Codeabschnitts hinzu, den der 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 der Klasse unmittelbar nach der Methode, die Sie in Schritt 5 hinzugefügt haben, die folgende MethodeForm1
hinzu: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
Form1
folgenden Code im Konstruktor nach dem Aufruf 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: