Het kan zeer nuttig zijn om algemene apps opnieuw te maken wanneer u meer te weten komt over Windows Forms. Dit kan ook helpen om uw basiskennis van programmeren te versterken. Een voorbeeld van een app die u kunt bouwen, is een eenvoudige bestandsbeheerder.

De app voor bestandsbeheer moet snelkoppelingen bevatten naar algemene Windows-mappen (bureaublad, Mijn documenten, afbeeldingen, muziek en video's). Het moet ook de mogelijkheid hebben om door mappen omhoog en omlaag te navigeren.

UI-elementen toevoegen aan het canvas

Eerst, maak een nieuwe Windows Form-toepassing in Visual Studio. Eenmaal voltooid, kunt u beginnen met het toevoegen van UI-elementen voor de bestandsbeheerder op het canvas.

  1. Zoek met het canvas geopend naar a Knop UI-element met behulp van de Toolbox.
  2. Versleep vijf knoppen om de snelkoppelingen weer te geven die beschikbaar zijn op een Windows-computer. Deze vertegenwoordigen de mappen Bureaublad, Mijn documenten, Afbeeldingen, Muziek en Video's.
  3. Markeer om de beurt elke knop en navigeer naar de Eigenschappenvenster. Verander elke knop Naam Eigenschap en Teksteigenschap naar de volgende waarden:
    Knop Naam Eigenschap Teksteigenschap
    1 button_Desktop Bureaublad
    2 button_Documenten Mijn Documenten
    3 button_Afbeeldingen Afbeeldingen
    4 button_Muziek Muziek
    5 button_Videos Videos
  4. Zoek naar een StroomLayoutPanel UI-element met behulp van de Toolbox.
  5. Sleep het naar het canvas en plaats het naast de snelkoppelingen. Hier geeft u uw bestanden en mappen weer op basis van de map die u momenteel bekijkt.
  6. Markeer het paneel en verander de Naam eigenschap naar "panel_FilesList".

Hoe het huidige bestandspad te krijgen

Wanneer u op een knop klikt (bijvoorbeeld Bureaublad), zou de lijst met mappen en bestanden op het Bureaublad in het paneel moeten worden weergegeven. Om dit te doen, kunt u het bestandspad ophalen van de map waarop u hebt geklikt, d.w.z. "C:\Users\User\Desktop".

Schrijf de logica hiervoor in het code-behind C#-bestand voor het formulier. Als u niet bekend bent met C#-klassen, kunt u meer informatie vinden over: klassen in C#.

  1. Dubbelklik op elk van de knoppen in de gebruikersinterface. Dit genereert klikgebeurtenisfuncties voor elke knop in het C#-bestand voor het formulier. Deze functies worden uitgevoerd wanneer u op de bijbehorende knop klikt.
    privaatleegtebutton_Desktop_Click(object afzender, EventArgs e)
    {
    }

    privaatleegtebutton_Documents_Click(object afzender, EventArgs e)
    {
    }

    privaatleegtebutton_Pictures_Click(object afzender, EventArgs e)
    {
    }

    privaatleegtebutton_Music_Click(object afzender, EventArgs e)
    {
    }

    privaatleegtebutton_Videos_Click(object afzender, EventArgs e)
    {
    }

  2. Om het bestandspad van een speciale Windows-map zoals het bureaublad te krijgen, gebruikt u de Omgeving. GetFolderPath() methode. Dit retourneert een tekenreeks van het bestandspad voor de map, bijvoorbeeld "C:\Users\User\Desktop". Voeg dit toe aan elke functie en geef de waarde van het bestandspad door aan een andere functie genaamd DisplayFiles(), die u later gaat maken.
    openbaar Formulier 1()
    {
    InitialiseerComponent();
    Bestanden weergeven(Omgeving.GetFolderPath(Omgeving.Speciale map.Bureaublad));
    }

    privaatleegtebutton_Desktop_Click(object afzender, EventArgs e)
    {
    Bestanden weergeven(Omgeving.GetFolderPath(Omgeving.Speciale map.Bureaublad));
    }

    privaatleegtebutton_Documents_Click(object afzender, EventArgs e)
    {
    Bestanden weergeven(Omgeving.GetFolderPath(Omgeving.Speciale map.Mijn Documenten));
    }

    privaatleegtebutton_Pictures_Click(object afzender, EventArgs e)
    {
    Bestanden weergeven(Omgeving.GetFolderPath(Omgeving.Speciale map.Mijn foto's));
    }

    privaatleegtebutton_Music_Click(object afzender, EventArgs e)
    {
    Bestanden weergeven(Omgeving.GetFolderPath(Omgeving.Speciale map.Mijn muziek));
    }

    privaatleegtebutton_Videos_Click(object afzender, EventArgs e)
    {
    Bestanden weergeven(Omgeving.GetFolderPath(Omgeving.Speciale map.Mijn video's));
    }

Hoe de bestanden voor de geselecteerde map te renderen

Geef een lijst met bestanden weer, afhankelijk van de knop Bureaublad, Mijn documenten, Afbeeldingen, Muziek of Video's waarop u klikt.

  1. Importeer het systeem. IO-naamruimte bovenaan het bestand.
    gebruik makend vanSysteem.IO;
  2. Maak een nieuwe functie met de naam DisplayFiles(), om de bestanden en mappen van een geselecteerde map weer te geven.
    privaatleegteBestanden weergeven(string bestandspad)
    {
    // Code om de bestanden en mappen in de map weer te geven
    }
  3. Binnen in het nieuwe DisplayFiles() functie, stelt u een lijst samen van alle mappen en bestanden die zich in de geselecteerde map bevinden.
    string[] filesList = Directory. GetDirectories (filePath).Concat (Directory. GetFiles (bestandspad)).ToArray();
  4. Zorg ervoor dat het paneel dat de lijst met bestanden en mappen weergeeft, leeg is.
    panel_FilesList.Besturing.Duidelijk();
  5. Sla de huidige directory op in een globale variabele.
    huidigeLocatie = bestandspad;
  6. Declareer de globale variabele bovenaan de klasse.
    stringcurrentLocation = "";
  7. terug in de DisplayFiles() functie, maak een knop voor elke map en elk bestand. Isoleer in een for-lus de naam van de rest van het bestandspad. Maak programmatisch een nieuwe knop, met de naam van het bestand of de map als de tekst van de knop.
    voor (int ik = 0; i < bestandenLijst. Lengte-1; ik++)
    {
    bool isHidden = ((File. GetAttributes (filesList[i]) & Bestandskenmerken. Verborgen) == Bestandskenmerken. Verborgen);

    als (!isVerborgen)
    {
    // Haal de naam van het bestand uit het pad
    var startOfName = filesList[i].LastIndexOf("\\");
    var fileName = filesList[i].Substring (startOfName + 1, filesList[i].Length - (startOfName + 1));

    // Geef het bestand of de map weer als een knop
    Knop nieuwKnop = nieuwe Knop();
    nieuweKnop. Tekst = bestandsnaam;
    nieuweKnop. Naam = bestandenLijst[i];
    nieuweKnop. Locatie = nieuwe Punt(70, 70);
    nieuweKnop. Maat = nieuwe Maat(800, 100);
    nieuweKnop. TextAlign = ContentAlignment. MiddenLinks;
    nieuweKnop. Opvulling = nieuwe opvulling(24, 0, 0, 0);
    panel_FilesList.Besturing.Toevoegen(nieuweKnop);
    }
    }

  8. Druk op de afspeelknop bovenaan Visual Studio om het programma uit te voeren.
  9. Klik op een van de snelkoppelingen. Als u bijvoorbeeld klikt op Mijn Documenten, Het paneel aan de rechterkant zou moeten worden gevuld met een lijst met bestanden en mappen in de Mijn Documenten map.
  10. Als u bijvoorbeeld op een andere snelkoppeling klikt, Videos, zou het paneel moeten wissen en veranderen om bestanden en mappen weer te geven in de Videos map.

Navigeren door mappen omhoog en omlaag

Wijzig de code zodat wanneer u op een map klikt die in de lijst wordt weergegeven, u een map naar beneden gaat. U kunt ook een terugknop maken om terug te gaan naar de vorige map.

  1. Om een ​​directory naar beneden te gaan, maak je een nieuwe functie aan met de naam button_Click_Open(). Als de gebruiker op een map in de lijst klikt, roept het programma de DisplayFiles() functie om de bestanden in die map weer te geven. Als de gebruiker in plaats daarvan op een bestand klikt, zal het programma het bestand openen.
    privaatleegtebutton_Click_Open(object afzender, EventArgs e)
    {
    Knop knop = (Knop) afzender;
    string filePath = knop. Naam;

    proberen
    {
    // Als er op een map is geklikt, laadt u de lijst met bestanden opnieuw in de nieuwe map
    DisplayFiles (bestandspad);
    }
    vangst (Uitzondering ex)
    {
    // Als op het bestand is geklikt, open het bestand
    var proces = nieuwe Systeem. Diagnostiek. Proces();
    werkwijze. StartInfo = nieuwe Systeem. Diagnostiek. ProcessStartInfo() { UseShellExecute = WAAR, Bestandsnaam = bestandspad };
    werkwijze.Begin();
    }
    }

  2. In de DisplayFiles() functie, wijzigt u het deel van de code dat een nieuwe knop maakt. Voeg een nieuwe regel toe na het maken van de knop om de nieuwe toe te voegen button_Click_Open() functie naar de gebeurtenis Click.
    nieuweKnop. Klik op += button_Click_Open;
  3. Om terug te navigeren in een map, maakt u een rug knop. Klik en sleep op het canvas een nieuwe knop met behulp van de Toolbox.
  4. Markeer de nieuwe Rug knop. Wijzig in het eigenschappenvenster de Teksteigenschap naar “< Terug”.
  5. Dubbelklik op de Rug om een ​​klikgebeurtenisfunctie te genereren die wordt geactiveerd wanneer de gebruiker op de terugknop klikt.
    privaatleegteterug_Klik(object afzender, EventArgs e)
    {
    }
  6. Zoek in de functie het bestandspad van de map een niveau hoger en geef de bestanden en mappen voor de bovenstaande map weer.
    var vorigeFolder = deze.huidige locatie. Subtekenreeks(0, deze.huidige locatie. LastIndexOf("\\"));
    DisplayFiles (vorige map);
  7. Druk nogmaals op de afspeelknop bovenaan Visual Studio om het programma uit te voeren. Klik nogmaals op een van de snelkoppelingen om een ​​lijst met mappen of bestanden weer te geven.
  8. Klik in het paneel op een map om een ​​map naar beneden te gaan.
  9. Klik op de terugknop om terug te gaan naar de vorige map.

Desktop-apps maken met Windows Forms

Een bestandsbeheerder is een eenvoudige app die u kunt bouwen wanneer u leert hoe u een Windows Form-toepassing maakt. U kunt de Toolbox gebruiken om een ​​paneel te slepen en neer te zetten op het canvas, samen met verschillende andere knoppen.

Nu uw app de hoofdfunctionaliteit heeft, kunt u de knopeigenschappen wijzigen om het ontwerp van Bestandsbeheer te verbeteren.

Ontdek enkele van de andere apps voor beginners die u kunt maken wanneer u meer te weten komt over Windows Forms-toepassingen.