Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli chcesz rozszerzyć funkcjonalność istniejącej kontrolki, możesz utworzyć kontrolkę pochodzącą z istniejącej kontrolki za pomocą dziedziczenia. Dziedzicząc po istniejącej kontrolce, dziedziczysz wszystkie funkcje i właściwości wizualne tej kontrolki. Jeśli na przykład tworzysz kontrolkę dziedziczona po Button, nowa kontrolka będzie wyglądać i działać dokładnie tak jak kontrolka standardowa Button. Następnie można rozszerzyć lub zmodyfikować funkcjonalność nowej kontrolki za pomocą implementacji niestandardowych metod i właściwości. W niektórych kontrolkach można również zmienić wygląd wizualny odziedziczonej kontrolki, przesłaniając metodę OnPaint.
Aby utworzyć dziedziczoną kontrolkę
W programie Visual Studio utwórz nowy projekt aplikacji Windows Forms.
Z menu Project wybierz pozycję Dodaj nowy element.
Zostanie wyświetlone okno dialogowe Dodawanie nowego elementu.
W oknie dialogowym Dodawanie nowego elementu kliknij dwukrotnie kontrolki niestandardowej.
Do projektu zostanie dodana nowa kontrolka niestandardowa.
Jeśli używasz:
- Visual Basic, na górze Eksploratora rozwiązań , kliknij pozycję Pokaż wszystkie pliki. Rozwiń CustomControl1.vb, a następnie otwórz CustomControl1.Designer.vb w Edytorze kodu.
- W języku C#otwórz CustomControl1.cs w Edytorze kodu.
Znajdź deklarację klasy, która dziedziczy z Control.
Zmień klasę bazową na kontrolkę, z której chcesz dziedziczyć.
Jeśli na przykład chcesz dziedziczyć z Button, zmień deklarację klasy na następującą:
Partial Class CustomControl1 Inherits System.Windows.Forms.Button
public partial class CustomControl1 : System.Windows.Forms.Button
Jeśli używasz języka Visual Basic, zapisz i zamknij CustomControl1.Designer.vb. Otwórz CustomControl1.vb w Edytorze kodu.
Zaimplementuj wszelkie niestandardowe metody lub właściwości, które będą uwzględniane przez kontrolkę.
Jeśli chcesz zmodyfikować graficzny wygląd kontrolki, zastąpij metodę OnPaint.
Notatka
Zastąpienie OnPaint nie umożliwi modyfikowania wyglądu wszystkich kontrolek. Te elementy sterujące, które mają całe malowanie wykonane przez system Windows (na przykład TextBox), nigdy nie wywołują swojej metody OnPaint, a tym samym nigdy nie będą używać kodu niestandardowego. Zapoznaj się z dokumentacją Pomocy dotyczącą określonej kontrolki, którą chcesz zmodyfikować, aby sprawdzić, czy jest dostępna metoda OnPaint. Aby uzyskać listę wszystkich kontrolek formularzy systemu Windows, zobacz Kontrolki do użycia w formularzach systemu Windows (Controls to Use on Windows Forms). Jeśli kontrolka nie ma OnPaint wymienionej jako metody składowej, nie można zmienić jej wyglądu poprzez przesłonięcie tej metody. Aby uzyskać więcej informacji na temat malowania niestandardowego, zobacz Custom Control Painting and Rendering.
Protected Overrides Sub OnPaint(ByVal e As _ System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(e) ' Insert code to do custom painting. ' If you want to completely change the appearance of your control, ' do not call MyBase.OnPaint(e). End Sub
protected override void OnPaint(PaintEventArgs pe) { base.OnPaint(pe); // Insert code to do custom painting. // If you want to completely change the appearance of your control, // do not call base.OnPaint(pe). }
Zapisz i przetestuj kontrolkę.
Zobacz też
- Odmiany kontrolek niestandardowych
- Jak dziedziczyć z klasy Control
- Instrukcje: dziedziczenie z klasy UserControl
- Jak opracowywać kontrolki dla formularzy Windows Forms
- Rozwiązywanie problemów z dziedziczymi procedurami obsługi zdarzeń w języku Visual Basic
- Przewodnik: Dziedziczenie po kontrolce Windows Forms
.NET Desktop feedback