Jak utworzyć narzędzie do przesyłania plików typu „przeciągnij i upuść” w aplikacji WinForm
Wiele nowoczesnych aplikacji działa na plikach, które użytkownik może przesłać do swojego systemu. Edytory obrazów, IDE kodu i edytory tekstu to przykłady. Jeśli tworzysz aplikację Windows Form, możesz łatwo dodać tę funkcję jako część interfejsu użytkownika.
Aplikacje Windows Form umożliwiają przeciąganie i upuszczanie elementów interfejsu użytkownika, takich jak panele lub pola list. Tych elementów interfejsu użytkownika można używać do tworzenia funkcji przeciągania i upuszczania. Kiedy użytkownik przeciągnie plik na panel, możesz wyświetlić informację zwrotną na podstawie tego pliku.
Jak utworzyć interfejs użytkownika dla kontenera przeciągnij i upuść
Możesz użyć elementu panelu, aby utworzyć interfejs użytkownika dla funkcji przeciągania i upuszczania. Następnie możesz użyć elementu interfejsu użytkownika ListBox, aby wyświetlić nazwy dowolnych plików przeciągniętych przez użytkownika na panel.
- Utwórz nową aplikację Windows Forms.
- W przyborniku wyszukaj element interfejsu użytkownika panelu i przeciągnij go na obszar roboczy.
- Zaznacz nowy panel. W oknie właściwości zmień wartości następujących właściwości:
- W przyborniku wyszukaj element interfejsu użytkownika ListBox i przeciągnij go na kanwę. Ustaw go tak, aby znajdował się wewnątrz panelu i upewnij się, że między ListBox a panelem jest trochę odstępu.
- Zaznacz nowy ListBox i zmień wartości następujących właściwości:
Jak dodać zdarzenie „przeciągnij i upuść”.
Zdarzeń w aplikacji Windows Form można używać do wykonywania określonych funkcji tylko wtedy, gdy wystąpią określone zdarzenia.
Aby dodać funkcjonalność do panelu przeciągnij i upuść, musisz dodać dwa zdarzenia. Zdarzenie „DragEnter” wystąpi podczas przeciągania plików nad panelem. Zdarzenie „DragDrop” wystąpi, gdy puścisz mysz, aby upuścić pliki do panelu.
- Zaznacz element interfejsu panelu zewnętrznego.
- W oknie właściwości kliknij ikonę Lightening , aby otworzyć listę zdarzeń.
- Kliknij dwukrotnie zdarzenie DragEnter , aby wygenerować nową funkcję. Ta funkcja zostanie wykonana podczas przeciągania plików nad panelem.
- Wewnątrz nowej funkcji zmień ikonę myszy, aby wskazać akcję przeciągania/upuszczania:
private void dragDropPanel_DragEnter(object sender, DragEventArgs e)
{
// Changes the icon of the mouse
e.Effect = DragDropEffects.All;
} - Kliknij kartę Form 1.cs [Projekt] u góry okna programu Visual Studio, aby wrócić do widoku kanwy. Zaznacz element interfejsu panelu.
- W oknie właściwości kliknij ikonę Lightening , aby wrócić do listy zdarzeń. Tym razem kliknij dwukrotnie zdarzenie DragDrop . Spowoduje to wygenerowanie kolejnej funkcji, która zostanie wykonana, gdy puścisz mysz, aby upuścić pliki do panelu.
- Wewnątrz nowej funkcji DragDrop uzyskaj listę plików, które użytkownik przeciąga do panelu. Można to znaleźć w szczegółach zdarzenia, które są automatycznie przekazywane do funkcji.
private void dragDropPanel_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
}
Jak wyświetlić listę przeciągniętych plików
Teraz, po dodaniu funkcji przeciągania i upuszczania plików przez użytkownika, możesz wyświetlać nazwy plików za pomocą elementu interfejsu użytkownika ListBox.
- Wewnątrz funkcji dragDropPanel_DragDrop(), po pobraniu listy plików, użyj pętli for, aby przejrzeć każdy plik.
foreach (var file in files)
{
}
- Wewnątrz pętli for pobierz tylko nazwę pliku. Oddziel nazwę pliku od ścieżki do pliku i zapisz ją w osobnej zmiennej. Jeśli używasz komputera Mac, może być konieczne zmodyfikowanie kodu w celu uwzględnienia ukośników w przód zamiast ukośników odwrotnych.
string fileName = file.Substring(file.LastIndexOf("\\") + 1, file.Length - (file.LastIndexOf("\\") + 1));
- Dodaj nazwę pliku do elementu interfejsu użytkownika ListBox.
try
{
uploadedFilesList.Items.Add(fileName);
}
catch (Exception exception)
{
Console.WriteLine(exception);
} - ListBox nie jest domyślnie widoczny. Po pętli for zmień widoczność ListBox na true:
uploadedFilesList.Visible = true;
- Zmodyfikuj konstruktora na górze pliku. Ustaw właściwości AllowDrop i AutoScroll panelu przeciągnij i upuść na true.
public Form1()
{
InitializeComponent();
dragDropPanel.AllowDrop = true;
dragDropPanel.AutoScroll = true;
}
Jak wyczyścić listę
Po przeciągnięciu elementów do panelu użytkownik może chcieć wyczyścić listę i zacząć od nowa. Możesz dodać przycisk, który wyczyści listę, gdy użytkownik ją kliknie.
- Za pomocą przybornika przeciągnij przycisk na obszar roboczy.
- Zaznacz przycisk. Użyj okna właściwości, aby zmienić następujące właściwości na nowe wartości:
- Kliknij dwukrotnie przycisk, aby wygenerować nową funkcję. Ta funkcja zostanie wykonana po kliknięciu przycisku w czasie wykonywania:
private void clearButton_Click(object sender, EventArgs e)
{
}
- Wewnątrz funkcji wyczyść zawartość elementu interfejsu użytkownika ListBox i ukryj go:
private void clearButton_Click(object sender, EventArgs e)
{
uploadedFilesList.Items.Clear();
uploadedFilesList.Visible = false;
}
Jak przetestować panel przeciągnij i upuść
Aby przetestować funkcję przeciągnij i upuść, uruchom aplikację i przeciągnij kilka plików do panelu. W razie potrzeby możesz również debugować aplikację Wininforms w programie Visual Studio w czasie wykonywania. Pomoże ci to zrozumieć, co dzieje się w każdym wierszu kodu.
- Naciśnij zielony przycisk odtwarzania w górnej części okna programu Visual Studio, aby uruchomić aplikację.
- Przeciągnij niektóre pliki z eksploratora plików i upuść je w panelu. Upewnij się, że nie używasz programu Visual Studio w trybie administratora. Będziesz musiał skonfigurować dodatkowe uprawnienia bezpieczeństwa, aby przeciągać i upuszczać, aby działać w trybie administratora.
- Panel zaktualizuje się, aby wyświetlić nazwy plików przeciągniętych do panelu.
- Przeciągnij wystarczającą liczbę plików, a zobaczysz, że panel przeciągania i upuszczania automatycznie wyświetla pasek przewijania po prawej stronie.
- Kliknij przycisk Wyczyść , aby opróżnić listę.
Korzystanie z funkcji przeciągania i upuszczania w aplikacjach Windows Form
Mam nadzieję, że teraz rozumiesz, jak dodać funkcję przeciągania i upuszczania do aplikacji Windows Form. Istnieje wiele innych funkcji, które można eksplorować, aby robić interesujące rzeczy w Windows Forms.
Dodaj komentarz