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:

  1. Erstellen Sie eine neue Windows Forms-Anwendung in Visual C# .NET oder Visual C# 2005. Form1 wird standardmäßig erstellt.

  2. Verwenden Sie die Toolbox, um form1 ein ListBox Steuerelement hinzuzufügen.

  3. Ändern Sie im Eigenschaftenfenster die AllowDrop Eigenschaft des ListBox Steuerelements in True , damit Objekte auf das Steuerelement gezogen werden können.

  4. Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf Form1, und klicken Sie dann auf Code anzeigen.

  5. Um das DragEnter Ereignis zu behandeln, fügen Sie die folgende Methode unterhalb des Codeabschnitts hinzu, den das Windows Form-Designer in der Form1 -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;
    }
    
  6. Um das DragDrop Ereignis zu behandeln, fügen Sie die folgende Methode der Klasse hinzu, die Form1 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]);
    }
    
  7. Um die beiden Ereignishandler den Steuerelementereignissen zuzuordnen, fügen Sie den folgenden Code im Form1 Konstruktor nach dem Aufruf von hinzu InitializeComponent:

    this.listBox1.DragDrop += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
    this.listBox1.DragEnter += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
    
  8. Erstellen Sie das Projekt, und führen Sie es aus.

  9. 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: