none
Windows Explorer durchsuchen, mit einer ListBox? RRS feed

  • Frage

  • Guten Morgen!

    Ich habe ein kleines Übungsprogramm erstellt, wo ich über einen "Öffnen" Button eine beliebige Datei anklicken kann, die dann in einer ListBox zu sehen ist. Jetzt will ich den Öffnen Button loswerden, und neben der ListBox1 (die die Dateien anzeigt) eine zweite ListBox erstellen, die den Explorer wiedergibt. Hoffentlich wisst ihr, was ich meine...?Links die Dateien, recht soll der Explorer wiedergegeben werden.

    (Links die Dateien, rechts soll der Explorer wiedergegeben werden)

    Die Dateien soll man dann per Drag and Drop, von ListBox2 zu ListBox1 übertragen können.

    Wenn ihr irgendwelche Codes braucht, einfach schreiben. Ich will hier nicht alles mit Codes zuballern:D

    Danke schon mal für hilfreiche Antworten!

    (Das Programm ist eine Windows Form Anwendung )


    Sonntag, 23. August 2015 09:11

Antworten

  • Hi,

    nö. Ich hab immer noch keinen Schimmer, was Du meinst.

    Vor allem deine Aussagen zum Windows Explorer irritieren mehr als das sie mir helfen würden, dein Problem zu verstehen.

    Ich probiers aber trotzdem mal:

    Links Dateiliste, rechts deine Listbox. So richtig? Falls ja, willst/sollst Du nicht den Windows Explorer integrieren, sondern ein Control, welches dir eine Dateiliste darstellt, mit der Du dann arbeiten kannst.

    Ein Beispiel für ein solches Control findest Du hier:

      https://code.msdn.microsoft.com/windowsapps/File-System-Tree-View-3a28325c

    Dort kannst Du dann auch deinen Drag&Drop Code integrieren, mit dem Du die Dateien aus der Dateiliste in deine Listbox übernehmen kannst.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Sonntag, 23. August 2015 12:54
    Moderator
  • Hallo,

    ich verstehe leider nicht wirklich was du vor hast. Wenn du eine eigene Dateiendung einführen willst, die dann mit deinem Programm geöffnet werden kann so ist das kein Problem. Sobald eine Datei mit deinem Programm geöffnet wird, erhältst du den Dateipfad als Befehlszeilenoption. Diese kannst du entweder in der Main-Methode über den args-Parameter abfragen oder aber du benutzt irgendwo anders die Environment.GetCommandLineArgs-Methode.

    Ein Drag and Drop lässt sich aber auch leicht implementieren, hierfür musst du nur die AllowDrop-Eigenschaft des gewünschten Ziels auf true stellen und das DragDrop/DragEnter-Event verarbeiten. Das angesprochene Ziel ist das Element auf dem du die Dateien "fallen" lassen kannst.
    In den Drag*-Events kannst du zunächst einen grafischen Effekt am Mauszeiger hervorrufen. Das geht über die Effect-Eigenschaft der EventArgs. Über e.Data kommst du an das gezogene Objekt heran.

    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }
    
    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            var fileName = (string)e.Data.GetData(DataFormats.FileDrop);
    
            //verarbeitung des Dateinamens
        }
    }
    Sonst würde ich den Explorer maximal noch über einen Öffnen-Button/Menüpunkt einbinden - das geht dann über den OpenFileDialog. Weitere Implementierungen bringen meiner Meinung nach nichts.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Sonntag, 23. August 2015 12:56
    Moderator

Alle Antworten