Voeg ondersteuning toe voor het uploaden van bestanden met de intuïtieve bruikbaarheid van slepen en neerzetten.
Veel moderne applicaties werken op bestanden die een gebruiker naar zijn systeem kan uploaden. Afbeeldingseditors, code-IDE's en tekstverwerkers zijn allemaal voorbeelden. Als u een Windows Form-toepassing bouwt, kunt u deze functionaliteit eenvoudig toevoegen als onderdeel van uw gebruikersinterface.
Met Windows Form-toepassingen kunt u UI-elementen zoals panelen of keuzelijsten slepen en neerzetten. U kunt deze UI-elementen gebruiken om uw functionaliteit voor slepen en neerzetten te creëren. Wanneer de gebruiker een bestand naar een paneel sleept, kunt u feedback weergeven op basis van dat bestand.
Hoe de gebruikersinterface voor de Drag and Drop-container te maken
U kunt een paneelelement gebruiken om de gebruikersinterface voor de functionaliteit voor slepen en neerzetten te maken. U kunt dan een ListBox UI-element gebruiken om de namen weer te geven van alle bestanden die een gebruiker naar het paneel sleept.
- Maak een nieuwe Windows Forms-toepassing.
- Zoek in de toolbox naar een paneel-UI-element en sleep het naar het canvas.
- Markeer het nieuwe paneel. Wijzig in het eigenschappenvenster de waarden van de volgende eigenschappen:
Eigendom
Nieuwe waarde
Naam
dragDropPanel
Achterkleur
Witte rook
Grensstijl
Vastenkel
Maat
600, 400
Zichtbaar
WAAR
- Zoek in de toolbox naar een ListBox UI-element en sleep het naar het canvas. Plaats het zo dat het zich in het paneel bevindt en zorg ervoor dat er enige ruimte is tussen de ListBox en het paneel.
- Markeer de nieuwe ListBox en wijzig de waarden van de volgende eigenschappen:
Eigendom
Nieuwe waarde
Naam
geüploadeFilesList
Achterkleur
Witte rook
Grensstijl
Geen
Maat
500, 300
Zichtbaar
Vals
Hoe de Drag and Drop-gebeurtenis toe te voegen
Je kunt gebruiken gebeurtenissen in een Windows Form-toepassing om bepaalde functies alleen uit te voeren wanneer bepaalde gebeurtenissen plaatsvinden.
Om functionaliteit toe te voegen aan het slepen-en-neerzetten-paneel, moet u twee gebeurtenissen toevoegen. De gebeurtenis "DragEnter" vindt plaats wanneer u bestanden over het paneel sleept. De gebeurtenis "DragDrop" vindt plaats wanneer u de muis loslaat om de bestanden in het paneel neer te zetten.
- Markeer het UI-element van het buitenste paneel.
- Klik in het eigenschappenvenster op de Bliksem pictogram om de lijst met gebeurtenissen te openen.
- Dubbelklik op de DragEnter gebeurtenis om een nieuwe functie te genereren. Deze functie wordt uitgevoerd wanneer u bestanden over het paneel sleept.
- Verander binnen de nieuwe functie het pictogram van de muis om de slepen/neerzetten-actie aan te geven:
privaatleegtedragDropPanel_DragEnter(object afzender, DragEventArgs e)
{
// Verandert het pictogram van de muis
e. Effect = DragDropEffecten. Alle;
} - Klik op de Formulier 1.cs [Ontwerp] tabblad bovenaan het Visual Studio-venster om terug te gaan naar de canvasweergave. Markeer het UI-element van het paneel.
- Klik in het eigenschappenvenster op de Bliksem pictogram om terug te gaan naar de lijst met gebeurtenissen. Dubbelklik deze keer op de Slepen, laten vallen evenement. Dit genereert een andere functie die wordt uitgevoerd wanneer u de muis loslaat om de bestanden in het paneel neer te zetten.
- Haal binnen de nieuwe DragDrop-functie de lijst met bestanden op die de gebruiker naar het paneel sleept. Je kunt dit vinden in de evenementdetails die automatisch worden doorgegeven aan de functie.
privaatleegtedragDropPanel_DragDrop(object afzender, DragEventArgs e)
{
string[] bestanden = (string[])e. Gegevens. GetData (DataFormats. BestandDrop, vals);
}
Hoe de lijst met gesleepte bestanden weer te geven
Nu u de functionaliteit voor de gebruiker hebt toegevoegd om bestanden te slepen en neer te zetten, kunt u de namen van de bestanden weergeven met behulp van het ListBox UI-element.
- Gebruik binnen de functie dragDropPanel_DragDrop() na het ophalen van de lijst met bestanden een for-lus om door elk bestand te lopen.
voor elk (var bestand in bestanden)
{
} - Binnen de for-lus krijgt u alleen de naam van het bestand. Scheid de naam van het bestand van het bestandspad en sla het op in een aparte variabele. Als u een Mac gebruikt, moet u mogelijk de code aanpassen om rekening te houden met schuine strepen naar voren in plaats van schuine strepen naar achteren.
tekenreeks bestandsnaam = bestand. Subtekenreeks (bestand. LaatsteIndexVan("\\") + 1, bestand. Lengte - (bestand. LaatsteIndexVan("\\") + 1));
- Voeg de naam van het bestand toe aan het ListBox UI-element.
poging
{
geüploadeFilesList.Artikelen.Toevoegen(bestandsnaam);
}
vangst (Uitzonderinguitzondering)
{
Troosten. Schrijf lijn(uitzondering);
} - De ListBox is standaard niet zichtbaar. Wijzig na de for-lus de zichtbaarheid van de ListBox in true:
geüploadeFilesList. Zichtbaar = WAAR;
- Wijzig de constructor bovenaan het bestand. Stel de ToestaanDrop En Automatisch scrollen eigenschappen van het deelvenster slepen en neerzetten op waar.
openbaar Formulier 1()
{
Component initialiseren();
dragDropPanel. ToestaanDrop = WAAR;
dragDropPanel. Automatisch scrollen = WAAR;
}
Hoe de lijst te wissen
Nadat de gebruiker items naar het paneel heeft gesleept, wil hij misschien de lijst wissen en opnieuw beginnen. U kunt een knop toevoegen om de lijst te wissen wanneer de gebruiker erop klikt.
- Sleep met behulp van de toolbox een knop naar het canvas.
- Markeer de knop. Gebruik het eigenschappenvenster om de volgende eigenschappen te wijzigen in de nieuwe waarden:
Eigendom
Nieuwe waarde
Naam
clearButton
Tekst
Duidelijk
- Dubbelklik op de knop om een nieuwe functie te genereren. Deze functie wordt uitgevoerd wanneer u tijdens runtime op de knop klikt:
privaatleegteclearButton_Click(object afzender, EventArgs e)
{}
- Wis binnen de functie de inhoud van het ListBox UI-element en verberg het:
privaatleegteclearButton_Click(object afzender, EventArgs e)
{
geüploadeFilesList.Artikelen.Duidelijk();
geüploadeFilesList. Zichtbaar = vals;
}
Hoe het slepen-en-neerzetten-paneel te testen
Om de functionaliteit voor slepen en neerzetten te testen, voert u de toepassing uit en sleept u enkele bestanden naar het paneel. Indien nodig kan dat ook foutopsporing in uw Winforms-toepassing in Visual Studio tijdens runtime. Dit helpt u te begrijpen wat er in elke regel code gebeurt.
- Druk op de groene afspeelknop bovenaan het Visual Studio-venster om de toepassing te starten.
- Sleep enkele bestanden vanuit uw bestandsverkenner en zet ze neer in het paneel. Zorg ervoor dat u Visual Studio niet uitvoert in de beheerdersmodus. U moet extra beveiligingsmachtigingen configureren voor slepen en neerzetten om te werken in de beheerdersmodus.
- Het paneel wordt bijgewerkt om u de namen te tonen van de bestanden die u naar het paneel hebt gesleept.
- Sleep genoeg bestanden en je zult zien dat het paneel voor slepen en neerzetten automatisch een schuifbalk aan de rechterkant weergeeft.
- Klik op de Duidelijk knop om de lijst leeg te maken.
Drag-and-drop-functionaliteit gebruiken in Windows Form Apps
Nu begrijp je hopelijk hoe je functionaliteit voor slepen en neerzetten kunt toevoegen aan je Windows Form-toepassing. Er zijn veel andere functies die u kunt verkennen om interessante dingen te doen met Windows Forms.