Udostępnij za pośrednictwem


Utwórz kontrolkę przybornika Formularzy Windows

Szablon elementu kontrolki przybornika formularzy systemu Windows, który znajduje się w narzędziu Visual Studio Extensibility Tools (VSSDK), umożliwia utworzenie kontrolki Przybornik, która jest automatycznie dodawana po zainstalowaniu rozszerzenia. W tym przewodniku pokazano, jak za pomocą szablonu utworzyć prostą kontrolkę licznika, którą można dystrybuować do innych użytkowników.

Utwórz kontrolkę przybornika

Szablon elementu sterującego Windows Forms Toolbox tworzy bazową kontrolkę użytkownika i udostępnia wszystkie funkcje wymagane do dodania kontrolki do Przybornika .

Utwórz rozszerzenie z kontrolką Przybornika 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 Kontrolka przybornika formularzy systemu Windows o nazwie Counter. W eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Dodaj>nowy element. W oknie dialogowym Dodawanie nowego elementu przejdź do pozycji Visual C#>Extensibility i wybierz Kontrolka przybornika formularzy systemu Windows

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

Tworzenie interfejsu użytkownika dla kontrolki

Kontrolka Counter wymaga dwóch kontrolek podrzędnych: Label do wyświetlenia bieżącej liczby i Button zresetowania liczby do 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 eksploratorze rozwiązań kliknij dwukrotnie Counter.cs, aby otworzyć go w projektancie.

  2. Usuń przycisk Click Here ! dołączany domyślnie podczas dodawania szablonu elementu kontrolki przybornika formularzy systemu Windows.

  3. Z przybornikaprzeciągnij kontrolkę Label, a następnie kontrolkę Button poniżej niej na powierzchnię projektową.

  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.

    Kontrola Własność Wartość
    Label1 tekstu ""
    Button1 nazwa btnReset
    Button1 Tekst Resetować

Kodowanie kontrolki użytkownika

Kontrolka Counter uwidacznia metodę zwiększenia licznika, zdarzenie, które jest zgłaszane za każdym razem, gdy licznik jest zwiększany, przycisk Resetuj oraz trzy właściwości do przechowywania bieżącej liczby, tekstu wyświetlanego oraz informacji, czy przycisk Reset powinien być wyświetlany lub ukrywany. Atrybut ProvideToolboxControl określa, gdzie w przyborniku pojawi się kontrolka Counter.

Aby kodować kontrolkę użytkownika

  1. Kliknij dwukrotnie formularz, aby otworzyć procedurę obsługi zdarzenia ł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 odczytać i ustawić tekst wyświetlany licznika oraz wyświetlić lub ukryć przycisk Resetuj. Osoby wywołujące mogą uzyskać aktualną wartość właściwości Value, która jest tylko do odczytu, ale nie mogą jej ustawić bezpośrednio.

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

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

    Ustawienie tekstu etykiety podczas zdarzenia Load umożliwia załadowanie właściwości docelowych przed zastosowaniem ich wartości. Ustawienie tekstu etykiety w konstruktorze spowoduje 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 sterującej.

    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 Reset, aby wygenerować obsługę 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 deklaracji atrybutu ProvideToolboxControl 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 przedstawiono atrybut ProvideToolboxControl i dostosowaną definicję klasy.

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

Testowanie kontrolki

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

Aby przetestować kontrolkę

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

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

  2. W instancji eksperymentalnej programu Visual Studio utwórz projekt aplikacji Windows Forms .

  3. W Eksploratorze rozwiązań kliknij dwukrotnie 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ólnej .

  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 dziedziczonymi z UserControl.

  6. Ustaw właściwość Message na wartość 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ć 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 InitializeComponentwpisz counter1``.``Incremented +=, a następnie naciśnij dwukrotnie Tab.

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

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

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

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

    Formularz się otwiera. Kontrolka Counter wyświetla następujący tekst.

    liczba : 0

  14. Wybierz pozycję Test.

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

  15. Zamknij okno komunikatu.

    Przycisk Reset znika.

  16. Wybierz pozycję Test, dopóki licznik nie osiągnie 5, za każdym razem zamykając okna komunikatów.

    Przycisk Resetuj pojawia się ponownie.

  17. Wybierz Resetuj.

    Licznik jest resetowany do 0.

Następne kroki

Podczas tworzenia kontrolki przybornika 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 przesłać plik .vsix do Visual Studio Marketplace, aby użytkownicy mogli go znaleźć, przeglądając w oknie dialogowym Narzędzia, Rozszerzenia i Aktualizacje Tools>Extensions and Updates.