Lisage failide üleslaadimise tugi intuitiivse pukseerimisfunktsiooni abil.
Paljud kaasaegsed rakendused töötavad failidega, mida kasutaja saab oma süsteemi üles laadida. Pildiredaktorid, koodi-IDE-d ja tekstitöötlusprogrammid on kõik näited. Kui loote Windowsi vormirakendust, saate selle funktsiooni hõlpsalt oma kasutajaliidese osana lisada.
Windowsi vormirakendused võimaldavad teil pukseerida kasutajaliidese elemente, nagu paneele või loendibokse. Neid kasutajaliidese elemente saate kasutada pukseerimisfunktsiooni loomiseks. Kui kasutaja lohistab faili paneelile, saate kuvada selle faili põhjal tagasisidet.
Pukseerimiskonteineri kasutajaliidese loomine
Saate kasutada paneeli elementi, et luua kasutajaliides pukseerimisfunktsiooni jaoks. Seejärel saate kasutada ListBoxi kasutajaliidese elementi, et kuvada kõigi failide nimed, mille kasutaja paneelile lohistab.
- Looge uus Windows Forms rakendus.
- Otsige tööriistakastis paneeli kasutajaliidese elementi ja lohistage see lõuendile.
- Tõstke esile uus paneel. Atribuutide aknas muutke järgmiste atribuutide väärtusi:
Kinnisvara
Uus väärtus
Nimi
dragDropPanel
BackColor
WhiteSmoke
BorderStyle
FixedSingle
Suurus
600, 400
Nähtav
Tõsi
- Otsige tööriistakastist loendikasti kasutajaliidese elementi ja lohistage see lõuendile. Asetage see nii, et see oleks paneeli sees, ja veenduge, et loendikasti ja paneeli vahele jääks vahe.
- Tõstke esile uus loendiboks ja muutke järgmiste atribuutide väärtusi:
Kinnisvara
Uus väärtus
Nimi
üleslaaditud faililoend
BackColor
WhiteSmoke
BorderStyle
Mitte ühtegi
Suurus
500, 300
Nähtav
Vale
Kuidas lisada sündmust Drag and Drop
Sa võid kasutada sündmused Windowsi vormirakenduses teatud funktsioonide täitmiseks ainult teatud sündmuste toimumisel.
Pukseerimispaneelile funktsioonide lisamiseks peate lisama kaks sündmust. Sündmus "DragEnter" toimub siis, kui lohistate faile üle paneeli. Sündmus "DragDrop" toimub siis, kui lasete hiire lahti, et failid paneelile kukutada.
- Tõstke esile välispaneeli kasutajaliidese element.
- Atribuutide aknas klõpsake nuppu Kergendamine ikooni sündmuste loendi avamiseks.
- Topeltklõpsake ikooni DragEnter sündmus uue funktsiooni loomiseks. See funktsioon käivitub, kui lohistate faile üle paneeli.
- Muutke uues funktsioonis hiire ikooni, et näidata pukseerimistoimingut:
privaatnetühinedragDropPanel_DragEnter(objekti saatja, DragEventArgs e)
{
// Muudab hiire ikooni
e. Efekt = DragDropEffects. Kõik;
} - Klõpsake nuppu Vorm 1.cs [disain] Lõuendivaatesse naasmiseks vahekaart Visual Studio akna ülaosas. Tõstke esile paneeli kasutajaliidese element.
- Atribuutide aknas klõpsake nuppu Kergendamine ikooni sündmuste loendisse naasmiseks. Seekord topeltklõpsake ikooni DragDrop sündmus. See genereerib teise funktsiooni, mis käivitatakse, kui lasete hiire lahti, et failid paneelile kukutada.
- Uues funktsioonis DragDrop saate hankida failide loendi, mida kasutaja paneelile lohistab. Selle leiate sündmuse üksikasjadest, mis edastatakse automaatselt funktsiooni.
privaatnetühinedragDropPanel_DragDrop(objekti saatja, DragEventArgs e)
{
string[] failid = (string[])e. Andmed. GetData (DataFormats. FileDrop, vale);
}
Kuidas kuvada lohistatud failide loend
Nüüd, kui olete lisanud kasutajale failide pukseerimise funktsiooni, saate kuvada failide nimesid, kasutades ListBox kasutajaliidese elementi.
- Funktsioonis dragDropPanel_DragDrop() kasutage pärast failide loendi hankimist iga faili sirvimiseks for-loopi.
igaühele (var fail failides)
{
} - For-tsükli sees saate ainult faili nime. Eraldage faili nimi faili teest ja salvestage see eraldi muutujasse. Kui kasutate Maci, peate võib-olla koodi muutma, et kaldkriipsude asemel kaldkriipsu arvesse võtta.
string failinimi = fail. Alamstring (fail. LastIndexOf("\\") + 1, fail. Pikkus - (fail. LastIndexOf("\\") + 1));
- Lisage faili nimi loendikasti kasutajaliidese elemendile.
proovi
{
üleslaaditud faililoend.Esemed.Lisama(faili nimi);
}
püüda (Eranderand)
{
konsool. WriteLine(erand);
} - ListBox ei ole vaikimisi nähtav. Pärast for-tsüklit muutke loendikasti nähtavus tõeseks:
üleslaaditud faililoend. Nähtav = tõsi;
- Muutke faili ülaosas olevat konstruktorit. Määrake AllowDrop ja Automaatne kerimine pukseerimispaneeli omadused tõeseks.
avalik Vorm1()
{
InitializeComponent();
dragDropPanel. AllowDrop = tõsi;
dragDropPanel. Automaatne kerimine = tõsi;
}
Kuidas loendit tühjendada
Kui kasutaja on üksused paneelile lohistanud, võib ta soovida loendi tühjendada ja uuesti alustada. Saate lisada nupu loendi tühjendamiseks, kui kasutaja sellel klõpsab.
- Lohistage nupp tööriistakasti abil lõuendile.
- Tõstke nupp esile. Kasutage atribuutide akent, et muuta järgmised atribuudid uuteks väärtusteks:
Kinnisvara
Uus väärtus
Nimi
ClearButton
Tekst
Selge
- Uue funktsiooni loomiseks topeltklõpsake nuppu. See funktsioon käivitub, kui klõpsate käivitamise ajal nuppu:
privaatnetühineClearButton_Click(objekti saatja, EventArgs e)
{}
- Funktsiooni sees tühjendage ListBox kasutajaliidese elemendi sisu ja peitke see:
privaatnetühineClearButton_Click(objekti saatja, EventArgs e)
{
üleslaaditud faililoend.Esemed.Selge();
üleslaaditud faililoend. Nähtav = vale;
}
Kuidas testida pukseerimispaneeli
Pukseerimise funktsiooni testimiseks käivitage rakendus ja lohistage mõned failid paneelile. Vajadusel saab ka siluda oma Winformsi rakendust Visual Studios käitusajal. See aitab teil mõista, mis igal koodireal toimub.
- Rakenduse käivitamiseks vajutage Visual Studio akna ülaosas rohelist esitusnuppu.
- Lohistage mõned failid oma failiuurijast ja pukseerige need paneelile. Veenduge, et te ei kasutaks Visual Studiot administraatorirežiimis. Administraatorirežiimis töötamiseks peate konfigureerima täiendavad turbeload.
- Paneeli värskendatakse, et kuvada paneelile lohistatud failide nimed.
- Lohistage piisavalt faile ja näete, et pukseerimispaneeli paremal küljel kuvatakse automaatselt kerimisriba.
- Klõpsake nuppu Selge nuppu loendi tühjendamiseks.
Pukseerimisfunktsiooni kasutamine Windowsi vormirakendustes
Nüüd saate loodetavasti aru, kuidas lisada oma Windowsi vormirakendusele pukseerimisfunktsiooni. Windows Formsiga huvitavate toimingute tegemiseks saate uurida palju muid funktsioone.