Lägg till stöd för filuppladdningar med den intuitiva användbarheten av dra och släpp.
Många moderna applikationer fungerar på filer som en användare kan ladda upp till sitt system. Bildredigerare, kod-IDE: er och ordbehandlare är alla exempel. Om du bygger en Windows Form-applikation kan du enkelt lägga till den här funktionen som en del av ditt användargränssnitt.
Med Windows Form-program kan du dra och släppa UI-element som paneler eller listrutor. Du kan använda dessa UI-element för att skapa din dra och släpp-funktion. När användaren drar en fil till en panel kan du visa feedback baserat på den filen.
Hur man skapar gränssnittet för Dra och släpp-behållaren
Du kan använda ett panelelement för att skapa användargränssnittet för dra och släpp-funktionen. Du kan sedan använda ett ListBox UI-element för att visa namnen på alla filer som en användare drar till panelen.
- Skapa ett nytt Windows Forms-program.
- Sök efter ett panel-UI-element i verktygslådan och dra det till arbetsytan.
- Markera den nya panelen. I egenskapsfönstret ändrar du värdena för följande egenskaper:
Fast egendom
Nytt värde
namn
draDropPanel
Bakfärg
Vit rök
BorderStyle
FixedSingle
Storlek
600, 400
Synlig
Sann
- Sök efter ett ListBox UI-element i verktygslådan och dra det till arbetsytan. Placera den så att den är inuti panelen och se till att det finns lite avstånd mellan ListBox och panelen.
- Markera den nya ListBox och ändra värdena för följande egenskaper:
Fast egendom
Nytt värde
namn
uppladdade fillistan
Bakfärg
Vit rök
BorderStyle
Ingen
Storlek
500, 300
Synlig
Falsk
Hur man lägger till Dra och släpp-händelsen
Du kan använda händelser i en Windows Form-applikation att utföra vissa funktioner endast när vissa händelser inträffar.
För att lägga till funktionalitet till dra och släpp-panelen måste du lägga till två händelser. Händelsen "DragEnter" inträffar när du drar filer över panelen. Händelsen "DragDrop" inträffar när du släpper musen för att släppa filerna i panelen.
- Markera det yttre panelens UI-element.
- I egenskapsfönstret klickar du på Belysning ikonen för att öppna händelselistan.
- Dubbelklicka på Dra Enter händelse för att generera en ny funktion. Denna funktion kommer att köras när du drar filer över panelen.
- Inuti den nya funktionen, ändra ikonen på musen för att indikera drag/släpp-åtgärden:
privattomhetdragDropPanel_DragEnter(objektavsändare, DragEventArgs e)
{
// Ändrar ikonen för musen
e. Effekt = DraDropEffects. Allt;
} - Klicka på Form 1.cs [Design] fliken överst i Visual Studio-fönstret för att gå tillbaka till arbetsytan. Markera panelens UI-element.
- I egenskapsfönstret klickar du på Belysning ikonen för att gå tillbaka till händelselistan. Den här gången dubbelklickar du på DraDrop händelse. Detta kommer att generera en annan funktion som kommer att köras när du släpper musen för att släppa filerna i panelen.
- Inuti den nya DragDrop-funktionen får du listan över filer som användaren drar in i panelen. Du hittar detta i händelseinformationen som automatiskt skickas till funktionen.
privattomhetdragDropPanel_DragDrop(objektavsändare, DragEventArgs e)
{
sträng[] filer = (sträng[])e. Data. GetData (DataFormats. FileDrop, falsk);
}
Hur man visar listan över släpade filer
Nu när du har lagt till funktionen för användaren att dra och släppa filer kan du visa namnen på filerna med hjälp av ListBox UI-elementet.
- Inuti dragDropPanel_DragDrop()-funktionen, efter att ha fått listan med filer, använd en for-loop för att loopa igenom varje fil.
för varje (var fil i filer)
{
} - Inne i for-loopen får du bara namnet på filen. Separera namnet på filen från sökvägen och lagra det i en separat variabel. Om du använder en Mac kan du behöva ändra koden för att ta hänsyn till snedstreck istället för bakåtstreck.
sträng filnamn = fil. Delsträng (fil. LastIndexOf("\\") + 1, fil. Längd - (fil. LastIndexOf("\\") + 1));
- Lägg till namnet på filen i ListBox UI-elementet.
Prova
{
uppladdade fillistan.Artiklar.Lägg till(filnamn);
}
fånga (Undantagundantag)
{
Trösta. Skrivlinje(undantag);
} - ListBox är inte synlig som standard. Efter for-loopen ändrar du synligheten för ListBox till true:
uppladdade fillistan. Synlig = Sann;
- Ändra konstruktorn överst i filen. Ställ in TillåtDrop och Auto-scrolla egenskaperna för dra och släpp-panelen till sant.
offentlig Form1()
{
InitializeComponent();
draDropPanel. AllowDrop = Sann;
draDropPanel. AutoScroll = Sann;
}
Hur man rensar listan
När användaren har dragit objekt till panelen kanske de vill rensa listan och börja om. Du kan lägga till en knapp för att rensa listan när användaren klickar på den.
- Använd verktygslådan och dra en knapp på duken.
- Markera knappen. Använd egenskapsfönstret för att ändra följande egenskaper till de nya värdena:
Fast egendom
Nytt värde
namn
clear-knappen
Text
Klar
- Dubbelklicka på knappen för att skapa en ny funktion. Denna funktion kommer att köras när du klickar på knappen under körning:
privattomhetclearButton_Click(objektavsändare, EventArgs e)
{}
- Inuti funktionen, rensa innehållet i ListBox UI-elementet och dölj det:
privattomhetclearButton_Click(objektavsändare, EventArgs e)
{
uppladdade fillistan.Artiklar.Klar();
uppladdade fillistan. Synlig = falsk;
}
Hur man testar dra och släpp-panelen
För att testa dra och släpp-funktionen, kör programmet och dra några filer till panelen. Om det behövs kan du också felsöka din Winforms-applikation i Visual Studio vid körning. Detta hjälper dig att förstå vad som händer i varje kodrad.
- Tryck på den gröna uppspelningsknappen överst i Visual Studio-fönstret för att köra programmet.
- Dra några filer från din filutforskare och släpp dem i panelen. Se till att du inte kör Visual Studio i administratörsläge. Du måste konfigurera extra säkerhetsbehörigheter för att dra och släppa för att fungera i administratörsläge.
- Panelen uppdateras för att visa dig namnen på filerna du drog in i panelen.
- Dra tillräckligt många filer så ser du att dra och släpp-panelen automatiskt visar en rullningslist på höger sida.
- Klicka på Klar för att tömma listan.
Använda dra och släpp-funktioner i Windows Form-appar
Nu förstår du förhoppningsvis hur du lägger till dra och släpp-funktionalitet i din Windows Form-applikation. Det finns många andra funktioner du kan utforska för att göra intressanta saker med Windows Forms.