Přidejte podporu pro nahrávání souborů s intuitivní použitelností drag and drop.
Mnoho moderních aplikací pracuje se soubory, které si uživatel může nahrát do svého systému. Příkladem jsou editory obrázků, IDE kódu a textové procesory. Pokud vytváříte aplikaci Windows Form, můžete tuto funkci snadno přidat jako součást uživatelského rozhraní.
Aplikace Windows Form vám umožňují přetahovat prvky uživatelského rozhraní, jako jsou panely nebo seznamy. Tyto prvky uživatelského rozhraní můžete použít k vytvoření funkce přetažení. Když uživatel přetáhne soubor na panel, můžete zobrazit zpětnou vazbu na základě tohoto souboru.
Jak vytvořit uživatelské rozhraní pro kontejner Drag and Drop
K vytvoření uživatelského rozhraní pro funkci přetažení můžete použít prvek panelu. Potom můžete použít prvek uživatelského rozhraní ListBox k zobrazení názvů souborů, které uživatel přetáhne na panel.
- Vytvořte novou aplikaci Windows Forms.
- V panelu nástrojů vyhledejte prvek uživatelského rozhraní panelu a přetáhněte jej na plátno.
- Zvýrazněte nový panel. V okně vlastností změňte hodnoty následujících vlastností:
Vlastnictví
Nová hodnota
název
dragDropPanel
Barva pozadí
Bílý kouř
BorderStyle
FixedSingle
Velikost
600, 400
Viditelné
Skutečný
- V panelu nástrojů vyhledejte prvek uživatelského rozhraní ListBox a přetáhněte jej na plátno. Umístěte jej tak, aby byl uvnitř panelu, a ujistěte se, že mezi ListBoxem a panelem je určitá mezera.
- Zvýrazněte nový ListBox a změňte hodnoty následujících vlastností:
Vlastnictví
Nová hodnota
název
uploadedFilesList
Barva pozadí
Bílý kouř
BorderStyle
Žádný
Velikost
500, 300
Viditelné
Nepravdivé
Jak přidat událost Drag and Drop
Můžeš použít události v aplikaci Windows Form provádět určité funkce pouze tehdy, když nastanou určité události.
Chcete-li přidat funkci do panelu přetažení, budete muset přidat dvě události. K události "DragEnter" dojde, když přetáhnete soubory přes panel. Událost "DragDrop" nastane, když pustíte myš, abyste vložili soubory do panelu.
- Zvýrazněte prvek uživatelského rozhraní vnějšího panelu.
- V okně vlastností klikněte na Zesvětlení ikonu pro otevření seznamu událostí.
- Dvakrát klikněte na DragEnter událost pro vygenerování nové funkce. Tato funkce se spustí, když přetáhnete soubory přes panel.
- Uvnitř nové funkce změňte ikonu myši tak, aby označovala akci přetažení:
soukroméprázdnotadragDropPanel_DragEnter(odesílatel objektu, DragEventArgs e)
{
// Změní ikonu myši
E. Efekt = DragDropEffects. Všechno;
} - Klikněte na Formulář 1.cs [Design] v horní části okna sady Visual Studio a přejděte zpět do zobrazení plátna. Zvýrazněte prvek uživatelského rozhraní panelu.
- V okně vlastností klikněte na Zesvětlení ikonu pro návrat do seznamu událostí. Tentokrát dvakrát klikněte na DragDrop událost. Tím se vygeneruje další funkce, která se spustí, když pustíte myš a umístíte soubory do panelu.
- Uvnitř nové funkce DragDrop získáte seznam souborů, které uživatel přetahuje do panelu. Můžete to najít v podrobnostech události, které jsou automaticky předány do funkce.
soukroméprázdnotadragDropPanel_DragDrop(odesílatel objektu, DragEventArgs e)
{
string[] soubory = (string[])e. Data. GetData (DataFormats. FileDrop, Nepravdivé);
}
Jak zobrazit seznam přetažených souborů
Nyní, když jste přidali funkci pro uživatele k přetahování souborů, můžete zobrazit názvy souborů pomocí prvku uživatelského rozhraní ListBox.
- Uvnitř funkce dragDropPanel_DragDrop() po získání seznamu souborů použijte smyčku for pro procházení každého souboru.
pro každého (var soubor v souborech)
{
} - Uvnitř for-loop získáte pouze název souboru. Oddělte název souboru od cesty k souboru a uložte jej do samostatné proměnné. Pokud používáte Mac, možná budete muset upravit kód tak, aby místo zpětných lomítek zohlednil dopředná lomítka.
řetězec název_souboru = soubor. Podřetězec (soubor. LastIndexOf("\\") + 1, soubor. Délka - (soubor. LastIndexOf("\\") + 1));
- Přidejte název souboru do prvku uživatelského rozhraní ListBox.
Snaž se
{
uploadedFilesList.Položky.Přidat(název souboru);
}
chytit (Výjimkavýjimka)
{
Řídicí panel. WriteLine(výjimka);
} - ListBox není ve výchozím nastavení viditelný. Po cyklu for změňte viditelnost seznamu na true:
uploadedFilesList. Viditelné = skutečný;
- Upravte konstruktor v horní části souboru. Nastav AllowDrop a Automatické rolování vlastnosti panelu přetažení na hodnotu true.
veřejnost Form1()
{
InitializeComponent();
dragDropPanel. AllowDrop = skutečný;
dragDropPanel. AutoScroll = skutečný;
}
Jak vymazat seznam
Poté, co uživatel přetáhne položky do panelu, může chtít vymazat seznam a začít znovu. Můžete přidat tlačítko pro vymazání seznamu, když na něj uživatel klikne.
- Pomocí panelu nástrojů přetáhněte tlačítko na plátno.
- Zvýrazněte tlačítko. Pomocí okna vlastností změňte následující vlastnosti na nové hodnoty:
Vlastnictví
Nová hodnota
název
ClearButton
Text
Průhledná
- Poklepáním na tlačítko vygenerujete novou funkci. Tato funkce se spustí, když za běhu kliknete na tlačítko:
soukroméprázdnotaclearButton_Click(odesílatel objektu, EventArgs e)
{}
- Uvnitř funkce vymažte obsah prvku uživatelského rozhraní ListBox a skryjte jej:
soukroméprázdnotaclearButton_Click(odesílatel objektu, EventArgs e)
{
uploadedFilesList.Položky.Průhledná();
uploadedFilesList. Viditelné = Nepravdivé;
}
Jak otestovat panel Drag and Drop
Chcete-li vyzkoušet funkci přetažení, spusťte aplikaci a přetáhněte některé soubory do panelu. V případě potřeby můžete také ladění vaší aplikace Winforms ve Visual Studiu za běhu. To vám pomůže pochopit, co se děje v každém řádku kódu.
- Stisknutím zeleného tlačítka přehrávání v horní části okna sady Visual Studio spustíte aplikaci.
- Přetáhněte některé soubory z průzkumníku souborů a pusťte je do panelu. Ujistěte se, že nepoužíváte Visual Studio v režimu správce. Chcete-li pracovat v režimu správce, budete muset nakonfigurovat další bezpečnostní oprávnění pro přetažení.
- Panel se aktualizuje a zobrazí názvy souborů, které jste do panelu přetáhli.
- Přetáhněte dostatek souborů a uvidíte, že panel přetažení automaticky zobrazí na pravé straně posuvník.
- Klikněte na Průhledná tlačítko pro vyprázdnění seznamu.
Použití funkce přetažení v aplikacích Windows Form Apps
Nyní snad chápete, jak přidat funkci přetahování do aplikace Windows Form. Existuje mnoho dalších funkcí, které můžete prozkoumat a dělat zajímavé věci s Windows Forms.