Frage

Ich habe ein Projekt, das winform listet alle Dateien in einem bestimmten Ordner. Es ermöglicht dem Benutzer ein neues Ziel für jede Datei auszuwählen, und wenn der Benutzer die Ziele für alle Dateien ausgewählt hat, dass er bewegt werden möchte, bewegt er sich die Dateien, eins nach dem anderen.

Mein nächster Schritt ist, ich brauche eine Bestätigungsformular angezeigt werden, wenn die Dateien verschoben werden, und fügen Sie den Namen jeder Datei und Ziel der confirm Form, wie sie bewegt wird.

Meine Frage ist: Wie kann ich mehr Text auf die Bestätigungs Form der Steuerelemente hinzufügen, nachdem ich es bereits geladen (confirm.showdialog() aus meiner anderen Form, ohne Benutzerinteraktion mit? Ich stelle mir vor, dass ich es von der ursprünglichen Form tun müssen, weil es jeden anzeigen muss, wenn es beginnt, um diese Datei zu bewegen, aber ich bin offen für alle Vorschläge:)

TIA

War es hilfreich?

Lösung

Die beiden oben genannten Antworten sind gut.

Wenn ich es richtig, Ihre Hauptformular verstehen können eine mehrere Dateien auswählen, dann ihr Ziel auswählen und starten Sie den Verschiebevorgang. Wenn das, was Sie brauchen, würde ich einfach wie folgt vor:

  1. Erstellen Sie ein neues Formular, das den Prozess für den Anwender berichten würde, ohne jegliche Interaktion zu erfordern, sondern nur um den Benutzer zu informieren, welche Datei verschoben wird;
  2. Erstellen Sie eine Instanz eines Objekts Background, und rufen Sie die Datei-move-Methode aus der BackgroundWorker.DoWork () -Methode (innerhalb Ihrer Hauptform);
  3. Flag Ihre Background zu Bericht über die Fortschritte, dann rufen Sie die BackgroundWorker.ReportProgress () Ereignishandler aus Ihrer move-Datei-Methode;
  4. Verwenden Sie die zuvor erstellte Liste der Dateinamen den Namen zu erhalten und melden Sie es Ihrem Datei-move Dialogform, während die Datei geändert wird. Eine einfache Datenbindung über ein Etikett sollte es tun, während Sie Ihre Currency zum nächsten Elemente in der Liste verschieben werden, oder man könnte die Liste Indexer einfacher Gebrauch die Dateinamen an einem bestimmten Index zu erhalten;
  5. Wenn der Benutzer startet der Umzug Prozess, Ihre Dateinamen bekommen und und sie zählen, dann stellen Sie Ihren ProgressBar Maximalwert für die Anzahl der Dateien, die Sie haben.
  6. Die BackgroundWorker.ReportProgress () -Methode nimmt einen ganzzahligen Wert als Argument, dann mit Ihrem Progress () Ereignishandler, können Sie den Namen der Datei anzuzeigen an die, indem sie den Dateinamen zu Ihrem Fenster kopiert werden Indexposition, Index gegeben durch Ihren Report () -Methode.

Dies ermöglicht es Ihnen, die Leistung eines zusätzlichen Thread zu verwenden, ohne „Einfrieren“ Ihren Haupt-Thread, von dem Formular erstellt wurde, dann werden Sie in der Lage sein, gleichzeitig Dateien bewegen auszuführen, und zeigt den Dateinamen für den Fortschritt -Form, während illustriert Ihren Benutzer visuell, was der Fortschritt ist etwa durch Ihr ProgressBar-Steuerelement, und Anzeigen der Dateinamen je nach Bedarf.

Ist diese Hilfe?

Andere Tipps

Wäre es nicht einfacher sein, um eine andere Form zu machen stattdessen voreingestellte Dialoge verwenden?

auf diese Weise können Sie einfach ein Textfeld haben, dass Sie füllen und Refresh

Sie den gesamten Code setzen könnte das Verschieben von Dateien innerhalb des Bestätigungsdialogfenster anzuzeigen.

Aber eine vollständigere Lösung zu geben, könnten Sie mir sagen, wie Sie die Datei das Sammeln von Informationen zu bewegen.

Eine gute Lösung wäre, nur in der Liste übergeben der Dateien verschoben werden und dann die Bewegungsfunktion im Dialog durchführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top