Jak utworzyć narzędzie do przesyłania plików typu „przeciągnij i upuść” w aplikacji WinForm

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.

  1. Utwórz nową aplikację Windows Forms.
  2. W przyborniku wyszukaj element interfejsu użytkownika panelu i przeciągnij go na obszar roboczy.
    Przeciąganie panelu z przybornika na płótno
  3. Zaznacz nowy panel. W oknie właściwości zmień wartości następujących właściwości:
    Panel Wininforms z oknem właściwości
  4. 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.
    Przeciąganie elementu ListBox z przybornika na płótno
  5. Zaznacz nowy ListBox i zmień wartości następujących właściwości:
    Płótno Wininforma z właściwościami ListBox

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.

  1. Zaznacz element interfejsu panelu zewnętrznego.
    Element interfejsu panelu wyróżniony na kanwie
  2. W oknie właściwości kliknij ikonę Lightening , aby otworzyć listę zdarzeń.
    Lista zdarzeń w oknie właściwości
  3. Kliknij dwukrotnie zdarzenie DragEnter , aby wygenerować nową funkcję. Ta funkcja zostanie wykonana podczas przeciągania plików nad panelem.
    Nowe zdarzenie DragEnter dla panelu
  4. 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;
    }
  5. Kliknij kartę Form 1.cs [Projekt] u góry okna programu Visual Studio, aby wrócić do widoku kanwy. Zaznacz element interfejsu panelu.
    Zmieniam karty z powrotem, aby wyświetlić płótno
  6. 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.
    Nowe zdarzenie DragDrop wygenerowane dla panelu na liście zdarzeń
  7. 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.

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

    }

  2. 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));
  3. Dodaj nazwę pliku do elementu interfejsu użytkownika ListBox. try
    {
        uploadedFilesList.Items.Add(fileName);
    }
    catch (Exception exception)
    {
        Console.WriteLine(exception);
    }
  4. ListBox nie jest domyślnie widoczny. Po pętli for zmień widoczność ListBox na true: uploadedFilesList.Visible = true;
  5. 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.

  1. Za pomocą przybornika przeciągnij przycisk na obszar roboczy.
    Przeciąganie elementu interfejsu użytkownika przycisku z przybornika do płótna
  2. Zaznacz przycisk. Użyj okna właściwości, aby zmienić następujące właściwości na nowe wartości:
    Podświetlony przycisk w kanwie z otwartym oknem właściwości
  3. 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)
    {

    }

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

  1. Naciśnij zielony przycisk odtwarzania w górnej części okna programu Visual Studio, aby uruchomić aplikację.
    Przycisk odtwarzania u góry programu Visual Studio
  2. 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.
    Pliki przeciągnięte do panelu w czasie wykonywania
  3. Panel zaktualizuje się, aby wyświetlić nazwy plików przeciągniętych do panelu.
    Pliki wyświetlane wewnątrz panelu w czasie wykonywania
  4. Przeciągnij wystarczającą liczbę plików, a zobaczysz, że panel przeciągania i upuszczania automatycznie wyświetla pasek przewijania po prawej stronie.
    Wiele plików wewnątrz panelu z paskami przewijania
  5. Kliknij przycisk Wyczyść , aby opróżnić listę.
    Lista paneli wyczyszczona w czasie wykonywania

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

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *