Door Sharleen Khan

Voeg ondersteuning toe voor het uploaden van bestanden met de intuïtieve bruikbaarheid van slepen en neerzetten.

Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

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.

instagram viewer

  1. Maak een nieuwe Windows Forms-toepassing.
  2. Zoek in de toolbox naar een paneel-UI-element en sleep het naar het canvas.
  3. 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

  4. 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.
  5. 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.

  1. Markeer het UI-element van het buitenste paneel.
  2. Klik in het eigenschappenvenster op de Bliksem pictogram om de lijst met gebeurtenissen te openen.
  3. Dubbelklik op de DragEnter gebeurtenis om een ​​nieuwe functie te genereren. Deze functie wordt uitgevoerd wanneer u bestanden over het paneel sleept.
  4. 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;
    }
  5. 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.
  6. 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.
  7. 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.

  1. 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)
    {

    }
  2. 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));
  3. Voeg de naam van het bestand toe aan het ListBox UI-element.
    poging
    {
    geüploadeFilesList.Artikelen.Toevoegen(bestandsnaam);
    }
    vangst (Uitzonderinguitzondering)
    {
    Troosten. Schrijf lijn(uitzondering);
    }
  4. De ListBox is standaard niet zichtbaar. Wijzig na de for-lus de zichtbaarheid van de ListBox in true:
    geüploadeFilesList. Zichtbaar = WAAR;
  5. 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.

  1. Sleep met behulp van de toolbox een knop naar het canvas.
  2. Markeer de knop. Gebruik het eigenschappenvenster om de volgende eigenschappen te wijzigen in de nieuwe waarden:

    Eigendom

    Nieuwe waarde

    Naam

    clearButton

    Tekst

    Duidelijk

  3. 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)
    {

    }

  4. 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.

  1. Druk op de groene afspeelknop bovenaan het Visual Studio-venster om de toepassing te starten.
  2. 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.
  3. Het paneel wordt bijgewerkt om u de namen te tonen van de bestanden die u naar het paneel hebt gesleept.
  4. Sleep genoeg bestanden en je zult zien dat het paneel voor slepen en neerzetten automatisch een schuifbalk aan de rechterkant weergeeft.
  5. 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.

Abonneer op onze nieuwsbrief

Opmerkingen

DeelTweetenDeelDeelDeel
Kopiëren
E-mail
Deel
DeelTweetenDeelDeelDeel
Kopiëren
E-mail

Link gekopieerd naar klembord

Gerelateerde onderwerpen

  • Programmeren
  • Programmeren
  • Verkenner
  • Webontwikkeling

Over de auteur

Sharleen Khan (71 artikelen gepubliceerd)

Shay werkt fulltime als softwareontwikkelaar en schrijft graag handleidingen om anderen te helpen. Ze heeft een Bachelor of IT en heeft eerdere ervaring in Quality Assurance en tutoring. Shay houdt van gamen en piano spelen.