ContainerControlDesigner Class

Definition

Provides designer functionality for controls that contain child controls or properties that can be modified at design time.

public ref class ContainerControlDesigner : System::Web::UI::Design::ControlDesigner
public class ContainerControlDesigner : System.Web.UI.Design.ControlDesigner
type ContainerControlDesigner = class
    inherit ControlDesigner
Public Class ContainerControlDesigner
Inherits ControlDesigner
Inheritance
Derived

Examples

The following code example demonstrates how to derive a designer class from the ContainerControlDesigner class. The example defines a simple control that is derived from the CompositeControl class, and then defines an associated designer, which is derived from the ContainerControlDesigner class. The derived designer class overrides the FrameCaption and FrameStyle properties to customize the frame that is around the editable region of the control on the design surface.

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;
            }
        }
    }
}

Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Collections
Imports System.Drawing
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls

Namespace ControlDesignerSamples.VB


    ' Define a simple composite control, derived from the 
    ' System.Web.UI.WebControls.CompositeControl class.

    <Designer(GetType(SimpleContainerControlDesigner)), _
     ParseChildren(False)> _
    Public Class SimpleContainerControl
        Inherits CompositeControl

    End Class


    ' 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 the frame around the 
    ' editable region of the control in the design surface.
    Public Class SimpleContainerControlDesigner
        Inherits ContainerControlDesigner

        Private _style As Style = Nothing

        ' Define the caption text for the frame in the design surface.
        Public Overrides ReadOnly Property FrameCaption() As String
            Get
                Return "- My simple container control -"
            End Get
        End Property


        ' Define the style of the frame around the control in the design surface.
        Public Overrides ReadOnly Property FrameStyle() As Style
            Get
                If _style Is Nothing Then

                    _style = New Style()
                    _style.Font.Name = "Verdana"
                    _style.Font.Size = New FontUnit("XSmall")
                    _style.BackColor = Color.LavenderBlush
                    _style.ForeColor = Color.DarkBlue
                End If

                Return _style
            End Get
        End Property


    End Class

End Namespace

Remarks

The ContainerControlDesigner class provides a base designer class for controls that can be modified on the design surface. This includes controls that contain child controls or editable inner properties. The ContainerControlDesigner provides a single framed region to represent the control, and automatically handles rendering the control at design time.

Apply the ParseChildrenAttribute attribute on the associated control to determine the design-time behavior of the ContainerControlDesigner. Apply the ParseChildrenAttribute settings on the associated control as follows:

  • false to indicate that the ContainerControlDesigner represents the contents of the editable design region as child controls.

  • true to indicate that the ContainerControlDesigner represents the contents of the editable design region as editable inner properties of the control.

Control developers can derive and extend a custom designer from one of several base designers depending on the kind of control that is being developed, as defined in the following list:

Note

The ContainerControlDesigner class replaces the obsolete ReadWriteControlDesigner class.

Use the DesignerAttribute attribute to associate a custom designer class together with a custom control implementation. For detailed information about how to use control designers with custom controls, see Walkthrough: Creating a Basic Control Designer for a Web Server Control.

Constructors

ContainerControlDesigner()

Initializes a new instance of the ContainerControlDesigner class.

Properties

ActionLists

Gets the action list collection for the control designer.

(Inherited from ControlDesigner)
AllowResize

Gets a value indicating if the control can be resized at design time.

AssociatedComponents

Gets the collection of components associated with the component managed by the designer.

(Inherited from ComponentDesigner)
AutoFormats

Gets the collection of predefined automatic formatting schemes to display in the Auto Format dialog box for the associated control at design time.

(Inherited from ControlDesigner)
Behavior
Obsolete.

Gets or sets the DHTML behavior that is associated with the designer.

(Inherited from HtmlControlDesigner)
Component

Gets the component this designer is designing.

(Inherited from ComponentDesigner)
DataBindings

Gets the data bindings collection for the current control.

(Inherited from HtmlControlDesigner)
DataBindingsEnabled

Gets a value indicating whether data binding is supported by the containing region for the associated control.

(Inherited from ControlDesigner)
DesignerState

Gets an object that is used to persist data for the associated control at design time.

(Inherited from ControlDesigner)
DesignTimeElement
Obsolete.

Gets the design-time object representing the control that is associated with the HtmlControlDesigner object on the design surface.

(Inherited from HtmlControlDesigner)
DesignTimeElementView
Obsolete.

Gets the view-control object for the control designer.

(Inherited from ControlDesigner)
DesignTimeHtmlRequiresLoadComplete
Obsolete.

Gets a value indicating whether the design host must finish loading before the GetDesignTimeHtml method can be called.

(Inherited from ControlDesigner)
Expressions

Gets the expression bindings for the current control at design time.

(Inherited from HtmlControlDesigner)
FrameCaption

Gets the caption that is displayed for a control at design time.

FrameStyle

Gets the style that is applied to the control frame at design time.

HidePropertiesInTemplateMode

Gets a value indicating whether the properties of the associated control are hidden when the control is in template mode.

(Inherited from ControlDesigner)
ID

Gets or sets the ID string for the control.

(Inherited from ControlDesigner)
InheritanceAttribute

Gets an attribute that indicates the type of inheritance of the associated component.

(Inherited from ComponentDesigner)
Inherited

Gets a value indicating whether this component is inherited.

(Inherited from ComponentDesigner)
InTemplateMode

Gets a value indicating whether the control is in either template viewing or editing mode in the design host. The InTemplateMode property is read-only.

(Inherited from ControlDesigner)
IsDirty
Obsolete.

Gets or sets a value indicating whether the Web server control has been marked as changed.

(Inherited from ControlDesigner)
NoWrap

Gets a value that specifies whether to use the HTML nowrap attribute on tables.

ParentComponent

Gets the parent component for this designer.

(Inherited from ComponentDesigner)
ReadOnly
Obsolete.

Gets or sets a value indicating whether the properties of the control are read-only at design time.

(Inherited from ControlDesigner)
RootDesigner

Gets the control designer for the Web Forms page that contains the associated control.

(Inherited from ControlDesigner)
SetTextualDefaultProperty (Inherited from ComponentDesigner)
ShadowProperties

Gets a collection of property values that override user settings.

(Inherited from ComponentDesigner)
ShouldCodeSerialize
Obsolete.

Gets or sets a value indicating whether to create a field declaration for the control in the code-behind file for the current design document during serialization.

(Inherited from HtmlControlDesigner)
Tag

Gets an object representing the HTML markup element for the associated control.

(Inherited from ControlDesigner)
TemplateGroups

Gets a collection of template groups, each containing one or more template definitions.

(Inherited from ControlDesigner)
UsePreviewControl

Gets a value indicating whether the control designer uses a temporary preview control to generate the design-time HTML markup.

(Inherited from ControlDesigner)
Verbs

Gets the design-time verbs supported by the component that is associated with the designer.

(Inherited from ComponentDesigner)
ViewControl

Gets or sets a Web server control that can be used for previewing the design-time HTML markup.

(Inherited from ControlDesigner)
ViewControlCreated

Gets or sets a value indicating whether a View control has been created for display on the design surface.

(Inherited from ControlDesigner)
Visible

Gets a value that indicates whether the control is visible at design time.

(Inherited from ControlDesigner)

Methods

AddDesignTimeCssAttributes(IDictionary)

Adds the style attributes for the control at design time.

CreateErrorDesignTimeHtml(String)

Creates HTML markup to display a specified error message at design time.

(Inherited from ControlDesigner)
CreateErrorDesignTimeHtml(String, Exception)

Creates the HTML markup to display a specified exception error message at design time.

(Inherited from ControlDesigner)
CreatePlaceHolderDesignTimeHtml()

Provides a simple rectangular placeholder representation that displays the type and ID of the control.

(Inherited from ControlDesigner)
CreatePlaceHolderDesignTimeHtml(String)

Provides a simple rectangular placeholder representation that displays the type and ID of the control, and also additional specified instructions or information.

(Inherited from ControlDesigner)
CreateViewControl()

Returns a copy of the associated control for viewing or rendering on the design surface.

(Inherited from ControlDesigner)
Dispose()

Releases all resources used by the ComponentDesigner.

(Inherited from ComponentDesigner)
Dispose(Boolean)

Releases the unmanaged resources that are used by the HtmlControlDesigner object and optionally releases the managed resources.

(Inherited from HtmlControlDesigner)
DoDefaultAction()

Creates a method signature in the source code file for the default event on the component and navigates the user's cursor to that location.

(Inherited from ComponentDesigner)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBounds()

Retrieves the coordinates of the rectangle representing the boundaries for the control as displayed on the design surface.

(Inherited from ControlDesigner)
GetDesignTimeCssAttributes()

Returns the collection of style attributes for the control at design time.

GetDesignTimeHtml()

Retrieves the HTML markup that is used to represent the control at design time.

(Inherited from ControlDesigner)
GetDesignTimeHtml(DesignerRegionCollection)

Returns the HTML markup that is used to represent the control at design time.

GetEditableDesignerRegionContent(EditableDesignerRegion)

Returns the content for the editable region of the control at design time.

GetEmptyDesignTimeHtml()

Retrieves the HTML markup to represent a Web server control at design time that will have no visual representation at run time.

(Inherited from ControlDesigner)
GetErrorDesignTimeHtml(Exception)

Retrieves the HTML markup that provides information about the specified exception.

(Inherited from ControlDesigner)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetPersistenceContent()

Returns the persistable content of the control at design time.

GetPersistInnerHtml()
Obsolete.

Retrieves the persistable inner HTML markup of the control.

(Inherited from ControlDesigner)
GetService(Type)

Attempts to retrieve the specified type of service from the design mode site of the designer's component.

(Inherited from ComponentDesigner)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
GetViewRendering()

Retrieves an object that contains the design-time markup for the content and regions of the associated control.

(Inherited from ControlDesigner)
Initialize(IComponent)

Initializes the control designer and loads the specified component.

(Inherited from ControlDesigner)
InitializeExistingComponent(IDictionary)

Reinitializes an existing component.

(Inherited from ComponentDesigner)
InitializeNewComponent(IDictionary)

Initializes a newly created component.

(Inherited from ComponentDesigner)
InitializeNonDefault()
Obsolete.
Obsolete.

Initializes the settings for an imported component that is already initialized to settings other than the defaults.

(Inherited from ComponentDesigner)
Invalidate()

Invalidates the whole area of the control that is displayed on the design surface and signals the control designer to redraw the control.

(Inherited from ControlDesigner)
Invalidate(Rectangle)

Invalidates the specified area of the control that is displayed on the design surface and signals the control designer to redraw the control.

(Inherited from ControlDesigner)
InvokeGetInheritanceAttribute(ComponentDesigner)

Gets the InheritanceAttribute of the specified ComponentDesigner.

(Inherited from ComponentDesigner)
IsPropertyBound(String)
Obsolete.

Retrieves a value indicating whether the specified property on the associated control is data-bound.

(Inherited from ControlDesigner)
Localize(IDesignTimeResourceWriter)

Uses the provided resource writer to persist the localizable properties of the associated control to a resource in the design host.

(Inherited from ControlDesigner)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
OnAutoFormatApplied(DesignerAutoFormat)

Called when a predefined, automatic formatting scheme has been applied to the associated control.

(Inherited from ControlDesigner)
OnBehaviorAttached()

Called when the control designer is attached to a Behavior object.

(Inherited from ControlDesigner)
OnBehaviorDetaching()
Obsolete.

Called when a behavior disassociates from the element.

(Inherited from HtmlControlDesigner)
OnBindingsCollectionChanged(String)
Obsolete.

Called when the data-binding collection changes.

(Inherited from ControlDesigner)
OnClick(DesignerRegionMouseEventArgs)

Called by the design host when the user clicks the associated control at design time.

(Inherited from ControlDesigner)
OnComponentChanged(Object, ComponentChangedEventArgs)

Called when the associated control changes.

(Inherited from ControlDesigner)
OnComponentChanging(Object, ComponentChangingEventArgs)

Represents the method that will handle the ComponentChanging event for the associated control.

(Inherited from ControlDesigner)
OnControlResize()
Obsolete.

Called when the associated Web server control has been resized in the design host at design time.

(Inherited from ControlDesigner)
OnPaint(PaintEventArgs)

Called when the control designer draws the associated control on the design surface, if the CustomPaint value is true.

(Inherited from ControlDesigner)
OnSetComponentDefaults()
Obsolete.
Obsolete.

Sets the default properties for the component.

(Inherited from ComponentDesigner)
OnSetParent()

Provides a way to perform additional processing when the associated control is attached to a parent control.

(Inherited from HtmlControlDesigner)
PostFilterAttributes(IDictionary)

Allows a designer to change or remove items from the set of attributes that it exposes through a TypeDescriptor.

(Inherited from ComponentDesigner)
PostFilterEvents(IDictionary)

Allows a designer to change or remove items from the set of events that it exposes through a TypeDescriptor.

(Inherited from ComponentDesigner)
PostFilterProperties(IDictionary)

Allows a designer to change or remove items from the set of properties that it exposes through a TypeDescriptor.

(Inherited from ComponentDesigner)
PreFilterAttributes(IDictionary)

Allows a designer to add to the set of attributes that it exposes through a TypeDescriptor.

(Inherited from ComponentDesigner)
PreFilterEvents(IDictionary)

Sets the list of events that are exposed at design-time for the TypeDescriptor object for the component.

(Inherited from HtmlControlDesigner)
PreFilterProperties(IDictionary)

Adds properties to or removes properties from the Properties grid in a design host at design time or provides new design-time properties that might correspond to properties on the associated control.

(Inherited from ControlDesigner)
RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifies the IComponentChangeService that this component has been changed.

(Inherited from ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Notifies the IComponentChangeService that this component is about to be changed.

(Inherited from ComponentDesigner)
RaiseResizeEvent()
Obsolete.

Raises the OnControlResize() event.

(Inherited from ControlDesigner)
RegisterClone(Object, Object)

Registers internal data in a cloned control.

(Inherited from ControlDesigner)
SetEditableDesignerRegionContent(EditableDesignerRegion, String)

Sets the content for the editable region of the control at design time.

SetRegionContent(EditableDesignerRegion, String)

Specifies the content for an editable region in the design-time view of the control.

(Inherited from ControlDesigner)
SetViewFlags(ViewFlags, Boolean)

Assigns the specified bitwise ViewFlags enumeration to the specified flag value.

(Inherited from ControlDesigner)
ToString()

Returns a string that represents the current object.

(Inherited from Object)
UpdateDesignTimeHtml()

Refreshes the design-time HTML markup for the associated Web server control by calling the GetDesignTimeHtml method.

(Inherited from ControlDesigner)

Explicit Interface Implementations

IDesignerFilter.PostFilterAttributes(IDictionary)

For a description of this member, see the PostFilterAttributes(IDictionary) method.

(Inherited from ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

For a description of this member, see the PostFilterEvents(IDictionary) method.

(Inherited from ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

For a description of this member, see the PostFilterProperties(IDictionary) method.

(Inherited from ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

For a description of this member, see the PreFilterAttributes(IDictionary) method.

(Inherited from ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

For a description of this member, see the PreFilterEvents(IDictionary) method.

(Inherited from ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

For a description of this member, see the PreFilterProperties(IDictionary) method.

(Inherited from ComponentDesigner)
ITreeDesigner.Children

For a description of this member, see the Children property.

(Inherited from ComponentDesigner)
ITreeDesigner.Parent

For a description of this member, see the Parent property.

(Inherited from ComponentDesigner)

Applies to

See also