Fügen Sie Unterstützung für Datei-Uploads mit der intuitiven Benutzerfreundlichkeit von Drag & Drop hinzu.
Viele moderne Anwendungen arbeiten mit Dateien, die ein Benutzer auf sein System hochladen kann. Beispiele sind Bildeditoren, Code-IDEs und Textverarbeitungsprogramme. Wenn Sie eine Windows Form-Anwendung erstellen, können Sie diese Funktionalität einfach als Teil Ihrer Benutzeroberfläche hinzufügen.
Windows Form-Anwendungen ermöglichen das Ziehen und Ablegen von UI-Elementen wie Bedienfeldern oder Listenfeldern. Sie können diese UI-Elemente verwenden, um Ihre Drag-and-Drop-Funktionalität zu erstellen. Wenn der Benutzer eine Datei auf einen Bereich zieht, können Sie basierend auf dieser Datei Feedback anzeigen.
So erstellen Sie die Benutzeroberfläche für den Drag & Drop-Container
Sie können ein Panel-Element verwenden, um die Benutzeroberfläche für die Drag-and-Drop-Funktionalität zu erstellen. Sie können dann ein ListBox-UI-Element verwenden, um die Namen aller Dateien anzuzeigen, die ein Benutzer auf das Bedienfeld zieht.
- Erstellen Sie eine neue Windows Forms-Anwendung.
- Suchen Sie in der Toolbox nach einem Panel-UI-Element und ziehen Sie es auf die Leinwand.
- Markieren Sie das neue Bedienfeld. Ändern Sie im Eigenschaftenfenster die Werte der folgenden Eigenschaften:
Eigentum
Neuer Wert
Name
DragDropPanel
Hintergrundfarbe
Weißer Rauch
BorderStyle
FixedSingle
Größe
600, 400
Sichtbar
WAHR
- Suchen Sie in der Toolbox nach einem ListBox-UI-Element und ziehen Sie es auf die Zeichenfläche. Positionieren Sie es so, dass es sich innerhalb des Bedienfelds befindet, und stellen Sie sicher, dass zwischen der ListBox und dem Bedienfeld ein gewisser Abstand besteht.
- Markieren Sie die neue ListBox und ändern Sie die Werte der folgenden Eigenschaften:
Eigentum
Neuer Wert
Name
hochgeladene Dateiliste
Hintergrundfarbe
Weißer Rauch
BorderStyle
Keiner
Größe
500, 300
Sichtbar
FALSCH
So fügen Sie das Drag-and-Drop-Ereignis hinzu
Sie können verwenden Ereignisse in einer Windows Form-Anwendung bestimmte Funktionen nur dann auszuführen, wenn bestimmte Ereignisse eintreten.
Um dem Drag-and-Drop-Bedienfeld Funktionalität hinzuzufügen, müssen Sie zwei Ereignisse hinzufügen. Das „DragEnter“-Ereignis tritt auf, wenn Sie Dateien über das Bedienfeld ziehen. Das „DragDrop“-Ereignis tritt auf, wenn Sie die Maus loslassen, um die Dateien in das Bedienfeld zu ziehen.
- Markieren Sie das äußere Panel-UI-Element.
- Klicken Sie im Eigenschaftenfenster auf die Aufhellung Symbol, um die Ereignisliste zu öffnen.
- Doppelklicken Sie auf die ZiehenEnter Ereignis, um eine neue Funktion zu generieren. Diese Funktion wird ausgeführt, wenn Sie Dateien über das Bedienfeld ziehen.
- Ändern Sie in der neuen Funktion das Maussymbol, um die Drag/Drop-Aktion anzuzeigen:
PrivatgeländeLeeredragDropPanel_DragEnter(Objektsender, DragEventArgs e)
{
// Ändert das Symbol der Maus
e. Effekt = DragDropEffects. Alle;
} - Klick auf das Formular 1.cs [Entwurf] oben im Visual Studio-Fenster, um zur Zeichenbereichsansicht zurückzukehren. Markieren Sie das Panel-UI-Element.
- Klicken Sie im Eigenschaftenfenster auf die Aufhellung Symbol, um zur Ereignisliste zurückzukehren. Doppelklicken Sie dieses Mal auf die Ziehen und loslassen Fall. Dadurch wird eine weitere Funktion generiert, die ausgeführt wird, wenn Sie die Maus loslassen, um die Dateien im Bedienfeld abzulegen.
- Rufen Sie in der neuen DragDrop-Funktion die Liste der Dateien ab, die der Benutzer in das Bedienfeld zieht. Diese finden Sie in den Ereignisdetails, die automatisch an die Funktion übergeben werden.
PrivatgeländeLeeredragDropPanel_DragDrop(Objektsender, DragEventArgs e)
{
string[] files = (string[])e. Daten. GetData (Datenformate. FileDrop, FALSCH);
}
So zeigen Sie die Liste der gezogenen Dateien an
Nachdem Sie die Funktionalität für den Benutzer zum Ziehen und Ablegen von Dateien hinzugefügt haben, können Sie die Namen der Dateien mithilfe des ListBox-UI-Elements anzeigen.
- Verwenden Sie in der Funktion dragDropPanel_DragDrop() nach dem Abrufen der Dateiliste eine for-Schleife, um jede Datei zu durchlaufen.
für jede (Var Datei in Dateien)
{
} - Rufen Sie innerhalb der for-Schleife nur den Namen der Datei ab. Trennen Sie den Namen der Datei vom Dateipfad und speichern Sie ihn in einer separaten Variablen. Wenn Sie einen Mac verwenden, müssen Sie möglicherweise den Code ändern, um Schrägstriche anstelle von umgekehrten Schrägstrichen zu berücksichtigen.
Zeichenfolge Dateiname = Datei. Teilstring (Datei. LetzterIndexVon("\\") + 1, Datei. Länge - (Datei. LetzterIndexVon("\\") + 1));
- Fügen Sie den Namen der Datei zum ListBox-Oberflächenelement hinzu.
versuchen
{
hochgeladene Dateiliste.Artikel.Hinzufügen(Dateinamen);
}
fangen (AusnahmeAusnahme)
{
Konsole. WriteLine(Ausnahme);
} - Die ListBox ist standardmäßig nicht sichtbar. Ändern Sie nach der for-Schleife die Sichtbarkeit der ListBox auf true:
hochgeladene Dateiliste. Sichtbar = WAHR;
- Ändern Sie den Konstruktor am Anfang der Datei. Stellen Sie die ein AllowDrop Und Auto Scroll Eigenschaften des Drag-and-Drop-Bedienfelds auf „true“.
öffentlich Form 1()
{
Initialisieren der Komponente();
DragDropPanel. AllowDrop = WAHR;
DragDropPanel. AutoScroll = WAHR;
}
So löschen Sie die Liste
Nachdem der Benutzer Elemente in das Bedienfeld gezogen hat, möchte er möglicherweise die Liste löschen und neu beginnen. Sie können eine Schaltfläche hinzufügen, um die Liste zu löschen, wenn der Benutzer darauf klickt.
- Ziehen Sie mithilfe der Toolbox eine Schaltfläche auf die Leinwand.
- Markieren Sie die Schaltfläche. Verwenden Sie das Eigenschaftenfenster, um die folgenden Eigenschaften auf die neuen Werte zu ändern:
Eigentum
Neuer Wert
Name
clearButton
Text
Klar
- Doppelklicken Sie auf die Schaltfläche, um eine neue Funktion zu erstellen. Diese Funktion wird ausgeführt, wenn Sie zur Laufzeit auf die Schaltfläche klicken:
PrivatgeländeLeereclearButton_Click(Objekt Sender, EventArgs e)
{}
- Löschen Sie innerhalb der Funktion den Inhalt des ListBox-UI-Elements und blenden Sie es aus:
PrivatgeländeLeereclearButton_Click(Objekt Sender, EventArgs e)
{
hochgeladene Dateiliste.Artikel.Klar();
hochgeladene Dateiliste. Sichtbar = FALSCH;
}
So testen Sie das Drag & Drop-Bedienfeld
Führen Sie zum Testen der Drag-and-Drop-Funktion die Anwendung aus und ziehen Sie einige Dateien in das Bedienfeld. Bei Bedarf können Sie auch Debuggen Sie Ihre Winforms-Anwendung in Visual Studio zur Laufzeit. Dies hilft Ihnen zu verstehen, was in jeder Codezeile passiert.
- Drücken Sie die grüne Wiedergabeschaltfläche oben im Visual Studio-Fenster, um die Anwendung auszuführen.
- Ziehen Sie einige Dateien aus Ihrem Datei-Explorer und legen Sie sie im Bedienfeld ab. Stellen Sie sicher, dass Sie Visual Studio nicht im Administratormodus ausführen. Sie müssen zusätzliche Sicherheitsberechtigungen für Drag & Drop konfigurieren, um im Administratormodus zu funktionieren.
- Das Bedienfeld wird aktualisiert und zeigt Ihnen die Namen der Dateien an, die Sie in das Bedienfeld gezogen haben.
- Ziehen Sie genügend Dateien und Sie werden sehen, dass das Drag & Drop-Bedienfeld automatisch eine Bildlaufleiste auf der rechten Seite anzeigt.
- Klick auf das Klar Schaltfläche, um die Liste zu leeren.
Verwenden der Drag-and-Drop-Funktion in Windows Form-Apps
Jetzt wissen Sie hoffentlich, wie Sie Ihrer Windows Form-Anwendung Drag-and-Drop-Funktionen hinzufügen. Es gibt viele andere Funktionen, die Sie erkunden können, um interessante Dinge mit Windows Forms zu tun.