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 (VSSDK), 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
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 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 WindowsSpowoduje to dodanie kontrolki użytkownika, kontrolki w
ProvideToolboxControlAttribute
RegistrationAttribute 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
W Eksplorator rozwiązań kliknij dwukrotnie Counter.cs, aby otworzyć go w projektancie.
Usuń przycisk Kliknij tutaj ! dołączony domyślnie podczas dodawania szablonu kontrolki Przybornik formularzy systemu Windows.
Z przybornika przeciągnij kontrolkę, a następnie kontrolkę
Label
Button
poniżej niej do powierzchni projektowej.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.
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 przyborniku pojawi się kontrolkaCounter
.
Aby kodować kontrolkę użytkownika
Kliknij dwukrotnie formularz, aby otworzyć procedurę obsługi zdarzeń ł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 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.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ę.
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 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.
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; }
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ę
Naciśnij F5 , aby rozpocząć debugowanie.
To polecenie kompiluje projekt i otwiera drugie eksperymentalne wystąpienie programu Visual Studio z zainstalowaną kontrolką.
W eksperymentalnym wystąpieniu programu Visual Studio utwórz projekt aplikacji Windows Forms.
W Eksplorator 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ólne.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 dziedziczone z UserControlklasy .Ustaw właściwość
Message
naCount:
.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
metody wpiszcounter1``.``Incremented +=
, a następnie naciśnij dwukrotnie Tab .Program Visual Studio generuje procedurę obsługi na poziomie formularza dla
counter1.Incremented
zdarzenia.Wyróżnij instrukcję
Throw
w procedurze obsługi zdarzeń, wpiszmbox
, a następnie naciśnij dwukrotnie Tab , aby wygenerować pole komunikatu z fragmentu kodu mbox.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;
Naciśnij klawisz F5.
Zostanie otwarty formularz. Kontrolka
Counter
wyświetla następujący tekst.Liczba: 0
Kliknij przycisk Testuj.
Licznik zwiększa się i program Visual Studio wyświetla pole komunikatu.
Zamknij okno komunikatu.
Przycisk Resetuj zniknie.
Wybierz pozycję Testuj , dopóki licznik nie osiągnie 5 zamykających pola komunikatów za każdym razem.
Przycisk Resetuj pojawia się ponownie.
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źć, przeglądając okno dialogowe Rozszerzenia i aktualizacje narzędzi>.