2016-05-23 3 views
0

ich vb.net bin mit einer Anwendung zu entwickeln, die der Benutzer mehrere Dateien von einem OpenfileOpenfile Auto sortieren die Dateien bestellen

Mein Problem ist jetzt wählen können, wird die Openfile nicht die Dateinamen lesen nach zu der Reihenfolge, die ich ausgewählt habe.

Zum Beispiel die Reihenfolge I-Datei ausgewählt haben, wird - PDF3, PDF1, PDF2

aber jedes Mal, wenn ich durch jede der Variablen in OpenFileDialog1.FileNames gelesen wurde einsortiert - PDF1, PDF2, PDF3 stattdessen.

Hilfe bitte? Ich könnte wirklich eine Menge zu mir bedeuten.

+0

ich den Dialog, erlaubt nicht denken. Es verfolgt nicht die Reihenfolge, in der der Benutzer Elemente ausgewählt hat. Sie können möglicherweise von OpenFileDialog erben, um eine neue Version zu erstellen, die dies tut. Lass mich sehen, ob ich das kann. –

+0

Oder Sie können nur die Dateien einzeln auswählen, wenn die Reihenfolge so wichtig ist. Milti-select nicht erlauben. –

+0

@Michael Vielen Dank für den Vorschlag, aber es wäre sehr mühsam, wenn der Benutzer viele Dateien zur Auswahl hat –

Antwort

1

Ich dachte, Sie könnten Nachrichten mit wndproc überwachen, und ja, jemand hat es bereits zusammen. Überprüfen Sie diese CodeProject Link

Sieht aus wie Sie Ereignisse verarbeiten können. Betrachten Sie EventFileNameChanged, die ausgelöst werden sollte, wenn der Benutzer auf eine Datei klickt. Sie können den Namen der angeklickten Datei verfolgen, die Ihnen Ihre Bestellung geben soll.

+0

Gute Lösung. Sie müssen den Überblick behalten, wenn eine Datei ein zweites Mal ausgewählt wurde, da dies die Auswahl aufhebt. Alles in allem klingt es zu schwierig für das, was es wert ist. @ Gabriel B S M 'TreeView'-Idee klingt nach einer besseren Idee als die Verwendung von' OpenFileDialog'. –

+0

Sobald der Benutzer auf OK klickt, erhalten Sie alle ausgewählten Dateien. Sie können sie mit Ihrem Tracking-Array überprüfen. Wenn Sie die Auswahl aufheben, wird es trotzdem nicht in den ausgewählten Dateien enden. – djv

1

OpenFileDialog ist nicht wirklich darauf ausgelegt, also wird es problematisch sein, es auf diese Weise zu verwenden.

Ich habe zwei Vorschläge:

  1. Versuchen Sie nicht, die Dateien in der Reihenfolge zu verarbeiten, die sie ausgewählt wurden (ich weiß nicht, warum Sie achive versuchen, so dass ich weiß nicht, ob Sie können nur diese Idee aufgeben)

  2. Verwenden Sie ein TreeView die Namen der Dateien zu laden, so dass die Benutzer Dateien über die TreeView auswählen können, die es den Überblick über die Bestellung viel einfacher zu halten machen sie ausgewählt wurden.

https://msdn.microsoft.com/en-us/library/system.windows.forms.treeview(v=vs.110).aspx

+1

Ich mag die Idee eines 'TreeView', wenn Sie wirklich die Reihenfolge verfolgen müssen. Dies könnte dem Benutzer auch die Möglichkeit geben, sich vor dem Senden neu anzuordnen. Wenn man es mit "OpenFileDialog" verfolgt, müsste sogar der Benutzer neu anfangen, wenn seine Bestellung versagt. Das 'TreeView' löst das. –