Verwenden von Visual C#, damit ein UserControl-Objekt als Entwurfszeit des Steuerelementcontainers fungiert
Dieser Artikel enthält Informationen dazu, wie Ein UserControl-Objekt zur Entwurfszeit als Steuerelementcontainer fungiert, nachdem Sie das UserControl-Objekt einem Windows-Formular hinzugefügt haben.
Originalversion des Produkts: Visual C #
Ursprüngliche KB-Nummer: 813450
Zusammenfassung
Dieser Artikel bezieht sich auf den Microsoft .NET Framework Class Library-NamespaceSystem.ComponentModel.
In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie ein UserControl-Objekt zur Entwurfszeit als Steuerelementcontainer fungiert, nachdem Sie userControl in einem Windows-Formular platziert haben. Es kann Situationen geben, in denen Sie ein Steuerelement auf Ihr UserControl ziehen möchten. Dazu muss UserControl als Steuerelementcontainer fungieren.
Standardmäßig kann ein UserControl-Objekt nur dann als Steuerelementcontainer fungieren, wenn Sie das Steuerelement erstellen. Um ein UserControl-Host zu einem Bestandteilsteuerelement zu machen, nachdem Sie userControl in einem Windows-Formular platziert haben, müssen Sie den Standard-Designer von UserControl ändern. Verwenden Sie zum Implementieren von Entwurfszeitdiensten für eine Komponente die DesignerAttribute Klasse des System.ComponentModel Namespaces. Das DesignerAttribute kommt vor der Klassendeklaration. Initialisieren Sie dies DesignerAttribute , indem Sie die designerTypeName Parameter und die designerBaseType Parameter übergeben.
designerTypeName ist der vollqualifizierte Name des Designertyps, der Entwurfszeitdienste bereitstellt. Übergeben Sie die Kombination aus dem System.Windows.Forms.Design.ParentControlDesigner und dem System.Design für den designerTypeName Parameter. Die ParentControlDesigner Klasse erweitert das Designzeitverhalten 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 von UserControl als Designzeit-Steuerelementcontainer
Erstellen Sie ein neues Visual C#-Windows-Steuerelementbibliotheksprojekt. 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 Project Typen 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 in Projektmappen-Explorer mit der rechten Maustaste auf "UserControl1.cs", und klicken Sie dann auf "Code anzeigen".
Fügen Sie dem Deklarationsbereich den folgenden Code hinzu:
using System.ComponentModel.Design;Wenden Sie das
System.ComponentModel.DesignerAttributeAttribut 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 von 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 Project Typen 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) nach Form1.cs.
Ziehen Sie ein Schaltflächensteuerelement aus der Toolbox nach UserControl1.
Hinweis
UserControl1 verhält sich als Steuerelementcontainer für das Schaltflächensteuerelement.
References
Weitere Informationen finden Sie auf der Microsoft-Website: ParentControlDesigner-Klasse.