Freigeben über


Verwenden von Visual C# zum Verwenden eines UserControl-Objekts als Entwurfszeit für Steuerelementcontainer

Dieser Artikel enthält Informationen dazu, wie Ein UserControl-Objekt zur Entwurfszeit als Steuerelementcontainer fungiert, nachdem Sie das UserControl-Objekt zu einem Windows Form-Formular hinzugefügt haben.

Originalproduktversion: Visual C#
Ursprüngliche KB-Nummer: 813450

Zusammenfassung

Dieser Artikel bezieht sich auf den Namespace der Microsoft .NET Framework-Klassenbibliothek System.ComponentModel.

In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie ein UserControl-Objekt zur Entwurfszeit als Steuerelementcontainer fungiert, nachdem Sie userControl auf ein Windows-Formular gesetzt haben. Es kann Situationen geben, in denen Sie ein Steuerelement auf Ihr UserControl-Steuerelement 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. Wenn Sie ein UserControl-Steuerelement hosten möchten, nachdem Sie das UserControl auf ein Windows Form-Steuerelement gesetzt haben, müssen Sie den Standard-Designer von UserControl ändern. Verwenden Sie die DesignerAttribute Klasse des System.ComponentModel Namespace, um Entwurfszeitdienste für eine Komponente zu implementieren. Das DesignerAttribute kommt vor der Klassendeklaration. Initialisieren Sie die DesignerAttribute Parameter, indem Sie die designerTypeName Parameter designerBaseType übergeben.

designerTypeName ist der vollqualifizierte Name des Designertyps, der Entwurfszeitdienste bereitstellt. Übergeben Sie die Kombination des System.Windows.Forms.Design.ParentControlDesigner Parameters und des System.Design Parameters designerTypeName . 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 Entwurfszeit-Steuerelementcontainer

  1. Erstellen Sie ein neues Visual C#-Windows-Steuerelementbibliotheksprojekt. 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. Benennen Sie das Projekt "ContainerUserControl". Standardmäßig wird UserControl1.cs erstellt.

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

  4. Fügen Sie dem Deklarationsbereich 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. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

Testen von 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 der 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) auf Form1.cs.

  4. Ziehen Sie ein Schaltflächen-Steuerelement aus der Toolbox auf UserControl1.

Notiz

UserControl1 verhält sich als Steuerelementcontainer für das Schaltflächen-Steuerelement.

References

Weitere Informationen finden Sie auf der Microsoft-Website: ParentControlDesigner-Klasse.