Verwenden von Visual C#, um ein UserControl-Objekt als Entwurfszeit eines Steuerelementcontainers zu verwenden
Dieser Artikel enthält Informationen dazu, wie Ein UserControl-Objekt zur Entwurfszeit als Steuerelementcontainer fungiert, nachdem Sie das UserControl-Objekt einem Windows Form-Objekt hinzugefügt haben.
Ursprüngliche Produktversion: Visual C#
Ursprüngliche KB-Nummer: 813450
Zusammenfassung
Dieser Artikel bezieht sich auf den Microsoft .NET Framework-Klassenbibliotheksnamespace System.ComponentModel
.
In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie Ein UserControl-Objekt zur Entwurfszeit als Steuerelementcontainer fungiert, nachdem Sie das UserControl-Objekt in einem Windows Form-Objekt platziert haben. Es kann Situationen geben, in denen Sie ein Steuerelement in Ihr UserControl ziehen möchten. Dazu muss userControl als Steuerungscontainer fungieren.
Standardmäßig kann ein UserControl-Objekt nur dann als Steuerelementcontainer fungieren, wenn Sie das Steuerelement erstellen. Um ein UserControl-Steuerelement als Host für ein konstituierendes Steuerelement festzulegen, nachdem Sie das UserControl-Steuerelement auf einem Windows Form-Steuerelement platziert haben, müssen Sie den Standard-Designer von UserControl ändern. Verwenden Sie die DesignerAttribute
-Klasse des System.ComponentModel
Namespaces, um Entwurfszeitdienste für eine Komponente zu implementieren. Der DesignerAttribute
kommt vor der Klassendeklaration. Initialisieren Sie den DesignerAttribute
, indem Sie die designerTypeName
Parameter und designerBaseType
übergeben.
designerTypeName
ist der vollqualifizierte Name des Designertyps, der Entwurfszeitdienste bereitstellt. Übergeben Sie die Kombination aus System.Windows.Forms.Design.ParentControlDesigner
und für System.Design
den designerTypeName
Parameter. Die ParentControlDesigner
-Klasse erweitert das Entwurfszeitverhalten für ein UserControl-Objekt.
designerBaseType
ist der Name der Basisklasse für den Designer. Die Klasse, die für die Entwurfszeitdienste verwendet wird, muss die IDesigner-Schnittstelle implementieren.
Erstellen des UserControl als Entwurfszeitsteuerungscontainer
Erstellen Sie ein neues Visual C#-Projekt für die Windows-Steuerelementbibliothek. Gehen Sie dazu wie folgt vor:
- Starten Sie Visual Studio.
- Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
- Klicken Sie unter Projekttypen auf Visual C#, und klicken Sie dann unter Vorlagen auf Windows Forms Steuerelementbibliothek.
Nennen Sie das Projekt ContainerUserControl. Standardmäßig wird UserControl1.cs erstellt.
Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf UserControl1.cs, und klicken Sie dann auf Code anzeigen.
Fügen Sie dem Deklarationsabschnitt den folgenden Code hinzu:
using System.ComponentModel.Design;
Wenden Sie das
System.ComponentModel.DesignerAttribute
-Attribut wie folgt auf das Steuerelement an:[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] public class UserControl1 : System.Windows.Forms.UserControl { ... }
On the Build menu, click Build Solution.
Testen des UserControl
Erstellen Sie ein neues Visual C#-Projekt. Gehen Sie dazu wie folgt vor:
- Starten Sie Visual Studio.
- Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
- Klicken Sie unter Projekttypen auf Visual C#, und klicken Sie dann unter Vorlagen auf Windows Forms Anwendung. Standardmäßig wird Form1.cs erstellt.
Fügen Sie das UserControl1-Steuerelement zur Toolbox hinzu.
- Klicken Sie im Menü Extras auf Toolboxelemente auswählen.
- Klicken Sie auf der Registerkarte .NET Framework Komponenten auf Durchsuchen.
- Suchen Sie im Feld Datei öffnen die DLL, die beim Erstellen des UserControl-Steuerelements erstellt wurde.
Ziehen Sie UserControl1 aus der Toolbox (unter Windows Forms) in Form1.cs.
Ziehen Sie ein Button-Steuerelement aus der Toolbox in UserControl1.
Hinweis
UserControl1 verhält sich als Steuerelementcontainer für das Button-Steuerelement.
References
Weitere Informationen finden Sie auf der Microsoft-Website: ParentControlDesigner-Klasse.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für