Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za pomocą języka C#można tworzyć zaawansowane kontrolki niestandardowe za pomocą dziedziczenia. Dzięki dziedziczeniu można tworzyć kontrolki, które zachowują wszystkie nieodłączne funkcje standardowych kontrolek Windows Forms, ale także zawierają funkcje niestandardowe. W tym przewodniku utworzysz prostą dziedziczoną kontrolkę o nazwie ValueButton. Ten przycisk dziedziczy funkcje standardowej kontrolki Windows Forms Button i uwidacznia właściwość niestandardową o nazwie ButtonValue.
Tworzenie projektu
Podczas tworzenia nowego projektu należy określić jego nazwę, aby ustawić przestrzeń nazw katalogu głównego, nazwę zestawu i nazwę projektu oraz upewnić się, że domyślny składnik będzie znajdować się w prawidłowej przestrzeni nazw.
Aby utworzyć bibliotekę formantów ValueButtonLib i kontrolkę ValueButton
W programie Visual Studio utwórz nowy projekt Biblioteka kontrolek formularzy systemu Windows i nadaj mu nazwę ValueButtonLib.
Nazwa projektu,
ValueButtonLib, jest również domyślnie przypisywana do głównej przestrzeni nazw. Główna przestrzeń nazw służy do kwalifikowania nazw składników w zestawie. Jeśli na przykład dwa zestawy zawierają składniki o nazwieValueButton, możesz określić składnikValueButtonprzy użyciu poleceniaValueButtonLib.ValueButton. Aby uzyskać więcej informacji, zobacz Przestrzenie nazw.W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy UserControl1.cs, a następnie wybierz polecenie Zmień nazwę z menu skrótów. Zmień nazwę pliku na ValueButton.cs. Kliknij przycisk Tak po wyświetleniu monitu o zmianę nazwy wszystkich odwołań do elementu kodu "
UserControl1".W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy ValueButton.cs i wybierz polecenie Wyświetl kod.
Znajdź wiersz instrukcji
class,public partial class ValueButton, i zmień typ, z którego ta kontrolka dziedziczy, z UserControl na Button. Dzięki temu dziedziczona kontrolka dziedziczy wszystkie funkcje kontrolki Button .W Eksploratorze rozwiązań otwórz węzeł ValueButton.cs , aby wyświetlić plik kodu wygenerowany przez projektanta , ValueButton.Designer.cs. Otwórz ten plik w Edytorze kodu.
Znajdź metodę
InitializeComponenti usuń wiersz, który przypisuje AutoScaleMode właściwość. Ta właściwość nie istnieje w kontrolce Button .W menu Plik wybierz pozycję Zapisz wszystko , aby zapisać projekt.
Uwaga / Notatka
Projektant wizualizacji nie jest już dostępny. Ponieważ kontrolka Button wykonuje własny obraz, nie można zmodyfikować jej wyglądu w projektancie. Jej wizualna reprezentacja będzie dokładnie taka sama jak wizualna reprezentacja klasy, z której dziedziczy (czyli Button), chyba że zostanie zmodyfikowana w kodzie. Nadal można dodawać składniki, które nie mają elementów interfejsu użytkownika, do powierzchni projektowej.
Dodawanie właściwości do odziedziczonej kontrolki
Jednym z możliwych zastosowań odziedziczonych kontrolek formularzy systemu Windows jest tworzenie kontrolek, które są identyczne w wyglądzie i środowisku standardowych kontrolek Windows Forms, ale uwidaczniają właściwości niestandardowe. W tej sekcji dodasz właściwość o nazwie ButtonValue do kontrolki.
Aby dodać właściwość Value
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy ValueButton.cs, a następnie kliknij polecenie Wyświetl kod z menu skrótów.
Znajdź instrukcję
class. Natychmiast po pliku{wpisz następujący kod:// Creates the private variable that will store the value of your // property. private int varValue; // Declares the property. public int ButtonValue { // Sets the method for retrieving the value of your property. get { return varValue; } // Sets the method for setting the value of your property. set { varValue = value; } }Ten kod ustawia metody, za pomocą których
ButtonValuewłaściwość jest przechowywana i pobierana. Instrukcjagetustawia wartość zwracaną do wartości przechowywanej w zmiennejvarValueprywatnej , asetinstrukcja ustawia wartość zmiennej prywatnej przy użyciu słowa kluczowegovalue.W menu Plik wybierz pozycję Zapisz wszystko , aby zapisać projekt.
Testowanie kontrolki
Kontrolki nie są projektami autonomicznymi; muszą być hostowane w kontenerze. Aby przetestować kontrolkę, należy podać projekt testowy, w którym ma zostać uruchomiony. Musisz również udostępnić element sterujący projektowi testowemu, budując go (kompilując). W tej sekcji utworzysz kontrolkę i przetestujesz ją w formularzu systemu Windows.
Aby utworzyć kontrolkę
W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie. Kompilacja powinna zakończyć się pomyślnie bez błędów kompilatora ani ostrzeżeń.
Aby utworzyć projekt testowy
W menu Plik wskaż polecenie Dodaj , a następnie kliknij pozycję Nowy projekt , aby otworzyć okno dialogowe Dodawanie nowego projektu .
Wybierz węzeł systemu Windows pod węzłem Visual C# , a następnie kliknij pozycję Aplikacja Windows Forms.
W polu Nazwa wprowadź Test.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł Odwołania dla projektu testowego, a następnie wybierz polecenie Dodaj odwołanie z menu skrótów, aby wyświetlić okno dialogowe Dodawanie odwołania .
Kliknij kartę o etykiecie Projects. Projekt ValueButtonLib zostanie wyświetlony w obszarze Nazwa projektu. Kliknij dwukrotnie projekt, aby dodać odwołanie do projektu testowego.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy pozycję Testuj i wybierz pozycję Kompiluj.
Aby dodać kontrolkę do formularza
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy Form1.cs i wybierz pozycję Projektant widoków z menu skrótów.
W przyborniku wybierz pozycję ValueButtonLib Components (Składniki ValueButtonLib). Kliknij dwukrotnie ValueButton.
Na formularzu zostanie wyświetlony element ValueButton .
Kliknij prawym przyciskiem myszy pozycję ValueButton i wybierz polecenie Właściwości z menu skrótów.
W oknie Właściwości sprawdź właściwości tej kontrolki. Należy pamiętać, że są one identyczne z właściwościami udostępnianymi przez przycisk standardowy, z tą różnicą, że istnieje dodatkowa właściwość ButtonValue.
Ustaw właściwość ButtonValue na 5.
Na karcie Wszystkie formularze systemu Windows w przyborniku, kliknij dwukrotnie pozycję Etykieta, aby dodać kontrolkę Label do formularza.
Przenieś etykietę do środka formularza.
Kliknij dwukrotnie plik
valueButton1.Edytor kodu otwiera
valueButton1_Clickzdarzenie.Wstaw następujący wiersz kodu.
label1.Text = valueButton1.ButtonValue.ToString();W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy pozycję Test i wybierz polecenie Ustaw jako projekt startowy z menu skrótów.
Z menu Debugowanie wybierz pozycję Rozpocznij debugowanie.
Form1Pojawia się.Kliknij
valueButton1.Cyfra "5" jest wyświetlana w
label1, co pokazuje, że właściwośćButtonValuetwojej dziedziczonej kontrolki została przekazana dolabel1za pomocą metodyvalueButton1_Click. W ten sposób kontrolka typuValueButtondziedziczy wszystkie funkcje standardowego przycisku Windows Forms, ale dodatkowo udostępnia niestandardową właściwość.
Zobacz także
.NET Desktop feedback