Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

ContainerControlDesigner-Klasse

Hinweis: Diese Klasse ist neu in .NET Framework, Version 2.0.

Stellt die Funktionalität für Designer für Steuerelemente bereit, die untergeordnete Steuerelemente oder Eigenschaften enthalten, die zur Entwurfszeit geändert werden können.

Namespace: System.Web.UI.Design
Assembly: System.Design (in system.design.dll)

public class ContainerControlDesigner : ControlDesigner
public class ContainerControlDesigner extends ControlDesigner
public class ContainerControlDesigner extends ControlDesigner

Die ContainerControlDesigner-Klasse stellt eine Basisdesignerklasse für Steuerelemente bereit, die auf der Entwurfsoberfläche bearbeitet werden können. Dazu zählen Steuerelemente, die untergeordnete Steuerelemente oder bearbeitbare innere Eigenschaften enthalten. Der ContainerControlDesigner stellt einen Bereich mit einem einzelnen Rahmen für die Darstellung des Steuerelements dar, der automatisch das Rendering des Steuerelements zur Entwurfszeit behandelt.

Wenden Sie das ParseChildrenAttribute-Attribut auf das zugeordnete Steuerelement an, um das Entwurfszeitverhalten des ContainerControlDesigner zu bestimmen. Legen Sie die ParseChildrenAttribute-Einstellungen im zugeordneten Steuerelement wie folgt fest:

  • false, um anzugeben, dass der ContainerControlDesigner den Inhalt des bearbeitbaren Entwurfsbereichs als untergeordnete Steuerelemente darstellt.

  • true, um anzugeben, dass der ContainerControlDesigner den Inhalt des bearbeitbaren Entwurfsbereichs als bearbeitbare innere Eigenschaften des Steuerelements darstellt.

Steuerelemententwickler können einen benutzerdefinierten Designer von verschiedenen Basisdesignern ableiten und erweitern. Dies hängt von der Art des zu entwickelnden Steuerelements ab, wie in der folgenden Liste angegeben:

  • Steuerelemente, denen zur Entwurfszeit untergeordnete Elemente hinzugefügt werden können, können von der ContainerControlDesigner-Klasse ableiten. Die PanelContainerDesigner-Klasse ist z. B. von der ContainerControlDesigner-Klasse abgeleitete und stellt ein Panel-Steuerelement auf der Entwurfsoberfläche dar.

  • Steuerelemente mit einem oder mehreren untergeordneten Steuerelementen, die u. U. auch über einen bearbeitbaren Designerbereich verfügen, in dem zur Entwurfszeit Steuerelemente hinzugefügt werden können, können von der CompositeControlDesigner-Klasse ableiten.

  • Steuerelemente, für die benutzerdefinierte Entwurfszeitverarbeitung erforderlich ist, können von der ControlDesigner-Basisklasse ableiten.

HinweisHinweis

Die ContainerControlDesigner-Klasse ersetzt die veraltete ReadWriteControlDesigner-Klasse.

Verwenden Sie das DesignerAttribute-Attribut, um einer benutzerdefinierten Steuerelementimplementierung eine benutzerdefinierte Designerklasse zuzuordnen. Ausführliche Informationen zur Verwendung von Steuerelement-Designern mit benutzerdefinierten Steuerelementen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines einfachen Steuerelement-Designers für ein Webserver-Steuerelement.

Im folgenden Codebeispiel wird veranschaulicht, wie eine Designerklasse von der ContainerControlDesigner-Klasse abgeleitet wird. Im Beispiel wird ein einfaches von der CompositeControl-Klasse abgeleitetes Steuerelement definiert. Anschließend wird ein zugeordneter Designer definiert, der von der ContainerControlDesigner-Klasse abgeleitet ist. Die abgeleitete Designerklasse überschreibt die FrameCaption-Eigenschaft und die FrameStyle-Eigenschaft, um den Rahmen um den editierbaren Bereich des Steuerelements auf der Entwurfsoberfläche anzupassen.

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;

namespace ControlDesignerSamples.CS
{

    // Define a simple composite control, derived from the 
    // System.Web.UI.WebControls.CompositeControl class.
    [
        Designer(typeof(SimpleContainerControlDesigner)) , 
        ParseChildren(false)
    ]
    public class SimpleContainerControl : CompositeControl
    {
    }


    // Define the designer for the simple composite control.
    // The designer derives from System.Web.UI.Design.ContainerControlDesigner.
    // The designer defines the style and caption for frame around the 
    // editable region in the design surface.
    public class SimpleContainerControlDesigner : ContainerControlDesigner
    {
        private Style _style = null;

        // Define the caption text for the frame in the design surface.
        public override string FrameCaption
        {
            get
            {
                return "= My simple container control =";
            }
        }

        // Define the style of the frame around the control in the design surface.
        public override Style FrameStyle
        {
            get
            {
                if (_style == null)
                {
                    _style = new Style();
                    _style.Font.Name = "Verdana";
                    _style.Font.Size = new FontUnit("XSmall");
                    _style.BackColor = Color.LavenderBlush;
                    _style.ForeColor = Color.DarkBlue;
                }

                return _style;
            }
        }
    }
}

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen: