Tworzenie kontrolki Przybornik formularzy systemu Windows

Szablon elementu kontrolki Przybornik formularzy systemu Windows, który jest dołączony do narzędzi Visual Studio Extensibility Tools (VS SDK), umożliwia utworzenie kontrolki Przybornik , która jest automatycznie dodawana podczas instalowania rozszerzenia. W tym przewodniku pokazano, jak za pomocą szablonu utworzyć prostą kontrolkę licznika, którą można dystrybuować do innych użytkowników.

Tworzenie kontrolki przybornika

Szablon kontrolki Przybornik formularzy systemu Windows tworzy niezdefiniowaną kontrolkę użytkownika i udostępnia wszystkie funkcje wymagane do dodania kontrolki do przybornika.

Tworzenie rozszerzenia za pomocą kontrolki Przybornik formularzy systemu Windows

  1. Utwórz projekt VSIX o nazwie MyWinFormsControl. Szablon projektu VSIX można znaleźć w oknie dialogowym Nowy projekt , wyszukując frazę "vsix".

  2. Po otwarciu projektu dodaj szablon elementu kontrolki Przybornik formularzy systemu Windows o nazwie Counter. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Dodaj>nowy element. W oknie dialogowym Dodawanie nowego elementu przejdź do pozycji Visual C#>Rozszerzalność i wybierz pozycję Kontrolka przybornika formularzy systemu Windows

  3. Spowoduje to dodanie kontrolki użytkownika, kontrolki w ProvideToolboxControlAttributeRegistrationAttribute celu umieszczenia kontrolki w przyborniku oraz wpisu elementu zawartości Microsoft.VisualStudio.ToolboxControl w manifeście VSIX na potrzeby wdrożenia.

Tworzenie interfejsu użytkownika dla kontrolki

Kontrolka Counter wymaga dwóch kontrolek podrzędnych: a Label , aby wyświetlić bieżącą liczbę, i wartość , Button aby zresetować liczbę do wartości 0. Nie są wymagane żadne inne kontrolki podrzędne, ponieważ wywołujące będą zwiększać licznik programowo.

Aby utworzyć interfejs użytkownika

  1. W Eksplorator rozwiązań kliknij dwukrotnie plik Counter.cs, aby otworzyć go w projektancie.

  2. Usuń przycisk Kliknij tutaj ! dołączony domyślnie podczas dodawania szablonu kontrolki Przybornik formularzy systemu Windows.

  3. Z przybornika przeciągnij kontrolkę, a następnie kontrolkę LabelButton poniżej niej do powierzchni projektowej.

  4. Zmień rozmiar kontrolki użytkownika na 150, 50 pikseli i zmień rozmiar kontrolki przycisku na 50, 20 pikseli.

  5. W oknie Właściwości ustaw następujące wartości dla kontrolek na powierzchni projektowej.

    Kontrolka Właściwości Wartość
    Label1 Tekst ""
    Button1 Nazwa/nazwisko btnReset
    Button1 Tekst Reset

Kodowanie kontrolki użytkownika

Kontrolka Counter uwidacznia metodę inkrementacji licznika, zdarzenie, które ma być zgłaszane za każdym razem, gdy licznik jest zwiększany, przycisk Resetuj i trzy właściwości do przechowywania bieżącej liczby, tekstu wyświetlania i czy pokazać lub ukryć przycisk Resetuj . Atrybut ProvideToolboxControl określa, gdzie w przybornikupojawi się kontrolkaCounter.

Aby kodować kontrolkę użytkownika

  1. Kliknij dwukrotnie formularz, aby otworzyć procedurę obsługi zdarzeń ładowania w oknie kodu.

  2. Powyżej metody obsługi zdarzeń w klasie sterowania utwórz liczbę całkowitą do przechowywania wartości licznika i ciągu do przechowywania tekstu wyświetlanego, jak pokazano w poniższym przykładzie.

    int currentValue;
    string displayText;
    
  3. Utwórz następujące deklaracje właściwości publicznych.

    public int Value {
        get { return currentValue; }
    }
    
    public string Message {
        get { return displayText; }
        set { displayText = value; }
    }
    
    public bool ShowReset {
        get { return btnReset.Visible; }
        set { btnReset.Visible = value; }
    }
    
    

    Osoby wywołujące mogą uzyskać dostęp do tych właściwości, aby uzyskać i ustawić tekst wyświetlania licznika oraz pokazać lub ukryć przycisk Resetuj. Osoby wywołujące mogą uzyskać bieżącą wartość właściwości tylko Value do odczytu, ale nie mogą ustawić wartości bezpośrednio.

  4. Umieść następujący kod w Load zdarzeniu dla kontrolki.

    private void Counter_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    
    

    Ustawienie tekstu etykiety w Load zdarzeniu umożliwia załadowanie właściwości docelowych przed zastosowaniem ich wartości. Ustawienie tekstu Etykieta w konstruktorze spowodowałoby pustą etykietę.

  5. Utwórz następującą publiczną metodę, aby zwiększać licznik.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
    
  6. Dodaj deklarację zdarzenia Incremented do klasy kontrolnej.

    public event EventHandler Incremented;
    

    Osoby wywołujące mogą dodawać programy obsługi do tego zdarzenia, aby reagować na zmiany w wartości licznika.

  7. Wróć do widoku projektu i kliknij dwukrotnie przycisk Resetuj, aby wygenerować procedurę obsługi zdarzeńbtnReset_Click. Następnie wypełnij go, jak pokazano w poniższym przykładzie.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Bezpośrednio nad definicją klasy w ProvideToolboxControl deklaracji atrybutu zmień wartość pierwszego parametru z "MyWinFormsControl.Counter" na "General". Spowoduje to ustawienie nazwy grupy elementów, która będzie hostować kontrolkę w przyborniku.

    W poniższym przykładzie ProvideToolboxControl przedstawiono atrybut i dostosowaną definicję klasy.

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

Testowanie kontrolki

Aby przetestować kontrolkę Przybornik , najpierw przetestuj ją w środowisku projektowym, a następnie przetestuj ją w skompilowanej aplikacji.

Aby przetestować kontrolkę

  1. Naciśnij klawisz F5 , aby rozpocząć debugowanie.

    To polecenie kompiluje projekt i otwiera drugie eksperymentalne wystąpienie programu Visual Studio z zainstalowaną kontrolką.

  2. W eksperymentalnym wystąpieniu programu Visual Studio utwórz projekt aplikacji Windows Forms.

  3. W Eksplorator rozwiązań kliknij dwukrotnie plik Form1.cs, aby otworzyć go w projektancie, jeśli nie jest jeszcze otwarty.

  4. W przyborniku kontrolka Counter powinna być wyświetlana w sekcji Ogólne.

  5. Przeciągnij kontrolkę Counter do formularza, a następnie wybierz ją. Właściwości Value, Messagei ShowReset zostaną wyświetlone w oknie Właściwości wraz z właściwościami dziedziczone z UserControlklasy .

  6. Ustaw właściwość Message na Count:.

  7. Przeciągnij kontrolkę Button do formularza, a następnie ustaw właściwości nazwy i tekstu przycisku na Test.

  8. Kliknij dwukrotnie przycisk, aby otworzyć plik Form1.cs w widoku kodu i utworzyć procedurę obsługi kliknięć.

  9. W procedurze obsługi kliknięć wywołaj metodę counter1.Increment().

  10. W funkcji konstruktora po wywołaniu InitializeComponentmetody wpisz counter1``.``Incremented += , a następnie naciśnij dwukrotnie klawisz Tab .

    Program Visual Studio generuje procedurę obsługi na poziomie formularza dla counter1.Incremented zdarzenia.

  11. Wyróżnij instrukcję Throw w procedurze obsługi zdarzeń, wpisz mbox, a następnie naciśnij dwukrotnie klawisz Tab , aby wygenerować pole komunikatu z fragmentu kodu mbox.

  12. W następnym wierszu dodaj następujący if/else blok, aby ustawić widoczność przycisku Resetuj.

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. Naciśnij klawisz F5.

    Zostanie otwarty formularz. Kontrolka Counter wyświetla następujący tekst.

    Liczba: 0

  14. Kliknij przycisk Testuj.

    Licznik zwiększa się i program Visual Studio wyświetla pole komunikatu.

  15. Zamknij okno komunikatu.

    Przycisk Resetuj zniknie.

  16. Wybierz pozycję Testuj , dopóki licznik nie osiągnie 5 zamykających pola komunikatów za każdym razem.

    Przycisk Resetuj pojawia się ponownie.

  17. Wybierz Resetuj.

    Licznik resetuje wartość 0.

Następne kroki

Podczas tworzenia kontrolki Przybornik program Visual Studio tworzy plik o nazwie ProjectName.vsix w folderze \bin\debug\ projektu. Kontrolkę można wdrożyć, przekazując plik vsix do sieci lub witryny sieci Web. Gdy użytkownik otworzy plik vsix, kontrolka zostanie zainstalowana i dodana do przybornika programu Visual Studio na komputerze użytkownika. Alternatywnie możesz przekazać plik vsix do witryny Visual Studio Marketplace, aby użytkownicy mogli go znaleźć, przechodząc do okna dialogowego Rozszerzenia narzędzi>i Aktualizacje.