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
Utwórz projekt VSIX o nazwie
MyWinFormsControl
. Szablon projektu VSIX można znaleźć w oknie dialogowym nowy projekt, wyszukując frazę "vsix".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 WindowsSpowoduje to dodanie kontrolki użytkownika,
ProvideToolboxControlAttribute
RegistrationAttribute 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
W eksploratorze rozwiązań kliknij dwukrotnie Counter.cs, aby otworzyć go w projektancie.
Usuń przycisk Click Here ! dołączany domyślnie podczas dodawania szablonu elementu kontrolki przybornika formularzy systemu Windows.
Z przybornikaprzeciągnij kontrolkę
Label
, a następnie kontrolkęButton
poniżej niej na powierzchnię projektową.Zmień rozmiar kontrolki użytkownika na 150, 50 pikseli i zmień rozmiar kontrolki przycisku na 50, 20 pikseli.
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
Kliknij dwukrotnie formularz, aby otworzyć procedurę obsługi zdarzenia ładowania w oknie kodu.
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;
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.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ę .
Utwórz następującą publiczną metodę, aby zwiększać licznik.
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
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.
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; }
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ę
Naciśnij F5, aby rozpocząć debugowanie.
To polecenie kompiluje projekt i otwiera drugie eksperymentalne wystąpienie programu Visual Studio z zainstalowaną kontrolką.
W instancji eksperymentalnej programu Visual Studio utwórz projekt aplikacji Windows Forms .
W Eksploratorze rozwiązań kliknij dwukrotnie Form1.cs, aby otworzyć go w projektancie, jeśli nie jest jeszcze otwarty.
W przyborniku , kontrolka
Counter
powinna być wyświetlana w sekcji ogólnej .Przeciągnij kontrolkę
Counter
do formularza, a następnie wybierz ją. WłaściwościValue
,Message
iShowReset
zostaną wyświetlone w oknie właściwości , wraz z właściwościami dziedziczonymi z UserControl.Ustaw właściwość
Message
na wartośćCount:
.Przeciągnij kontrolkę Button do formularza, a następnie ustaw właściwości nazwy i tekstu przycisku na
Test
.Kliknij dwukrotnie przycisk, aby otworzyć Form1.cs w widoku kodu i utworzyć procedurę obsługi kliknięć.
W procedurze obsługi kliknięć wywołaj metodę
counter1.Increment()
.W funkcji konstruktora po wywołaniu
InitializeComponent
wpiszcounter1``.``Incremented +=
, a następnie naciśnij dwukrotnie Tab.Program Visual Studio generuje procedurę obsługi na poziomie formularza dla zdarzenia
counter1.Incremented
.Wyróżnij instrukcję
Throw
w procedurze obsługi zdarzeń, wpiszmbox
, a następnie naciśnij Tab dwa razy, aby wygenerować pole komunikatu z fragmentu kodu mbox.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;
Naciśnij F5.
Formularz się otwiera. Kontrolka
Counter
wyświetla następujący tekst.liczba : 0
Wybierz pozycję Test.
Licznik zwiększa się i program Visual Studio wyświetla pole komunikatu.
Zamknij okno komunikatu.
Przycisk Reset znika.
Wybierz pozycję Test, dopóki licznik nie osiągnie 5, za każdym razem zamykając okna komunikatów.
Przycisk Resetuj pojawia się ponownie.
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.