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

  1. Erstellen Sie ein neues Visual C#-Projekt für die Windows-Steuerelementbibliothek. Gehen Sie dazu wie folgt vor:

    1. Starten Sie Visual Studio.
    2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
    3. Klicken Sie unter Projekttypen auf Visual C#, und klicken Sie dann unter Vorlagen auf Windows Forms Steuerelementbibliothek.
  2. Nennen Sie das Projekt ContainerUserControl. Standardmäßig wird UserControl1.cs erstellt.

  3. Klicken Sie Projektmappen-Explorer mit der rechten Maustaste auf UserControl1.cs, und klicken Sie dann auf Code anzeigen.

  4. Fügen Sie dem Deklarationsabschnitt den folgenden Code hinzu:

    using System.ComponentModel.Design;
    
  5. 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
    {
        ...
    }
    
  6. On the Build menu, click Build Solution.

Testen des UserControl

  1. Erstellen Sie ein neues Visual C#-Projekt. Gehen Sie dazu wie folgt vor:

    1. Starten Sie Visual Studio.
    2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
    3. Klicken Sie unter Projekttypen auf Visual C#, und klicken Sie dann unter Vorlagen auf Windows Forms Anwendung. Standardmäßig wird Form1.cs erstellt.
  2. Fügen Sie das UserControl1-Steuerelement zur Toolbox hinzu.

    1. Klicken Sie im Menü Extras auf Toolboxelemente auswählen.
    2. Klicken Sie auf der Registerkarte .NET Framework Komponenten auf Durchsuchen.
    3. Suchen Sie im Feld Datei öffnen die DLL, die beim Erstellen des UserControl-Steuerelements erstellt wurde.
  3. Ziehen Sie UserControl1 aus der Toolbox (unter Windows Forms) in Form1.cs.

  4. 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.