.NET Framework Class Library
ControlDesigner Class

Provides a base control designer class for extending the design-mode behavior of a Web server control.

Inheritance Hierarchy
SystemObject
   System.ComponentModel.DesignComponentDesigner
     System.Web.UI.DesignHtmlControlDesigner
      System.Web.UI.DesignControlDesigner
        More...

Namespace:   System.Web.UI.Design
Assembly:  System.Design (in System.Design.dll)
Syntax
<[%$TOPIC/ff1w4swf_en-us_VS_110_2_0_0_0_0%]([%$TOPIC/ff1w4swf_en-us_VS_110_2_0_0_0_1%].Demand, Flags := [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_0_0_2%].UnmanagedCode)> _
Public Class ControlDesigner _
	Inherits [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_0_0_3%]
[[%$TOPIC/ff1w4swf_en-us_VS_110_2_0_1_0_0%]([%$TOPIC/ff1w4swf_en-us_VS_110_2_0_1_0_1%].Demand, Flags = [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_1_0_2%].UnmanagedCode)]
public class ControlDesigner : [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_1_0_3%]
[[%$TOPIC/ff1w4swf_en-us_VS_110_2_0_2_0_0%]([%$TOPIC/ff1w4swf_en-us_VS_110_2_0_2_0_1%]::Demand, Flags = [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_2_0_2%]::UnmanagedCode)]
public ref class ControlDesigner : public [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_2_0_3%]
[<[%$TOPIC/ff1w4swf_en-us_VS_110_2_0_3_0_0%]([%$TOPIC/ff1w4swf_en-us_VS_110_2_0_3_0_1%].Demand, Flags = [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_3_0_2%].UnmanagedCode)>]
type ControlDesigner =  
    class 
        inherit [%$TOPIC/ff1w4swf_en-us_VS_110_2_0_3_0_3%] 
    end

The ControlDesigner type exposes the following members.

Constructors
  NameDescription
Public method ControlDesignerInitializes a new instance of the ControlDesigner class.
Top
Properties
  NameDescription
Public property ActionListsGets the action list collection for the control designer. (Overrides ComponentDesignerActionLists.)
Public property AllowResizeGets a value indicating whether the control can be resized in the design-time environment.
Public property AssociatedComponentsGets the collection of components associated with the component managed by the designer. (Inherited from ComponentDesigner.)
Public property AutoFormatsGets the collection of predefined automatic formatting schemes to display in the Auto Format dialog box for the associated control at design time.
Public property BehaviorObsolete. Gets or sets the DHTML behavior that is associated with the designer. (Inherited from HtmlControlDesigner.)
Public property ComponentGets the component this designer is designing. (Inherited from ComponentDesigner.)
Public property DataBindingsGets the data bindings collection for the current control. (Inherited from HtmlControlDesigner.)
Protected property DataBindingsEnabledGets a value indicating whether data binding is supported by the containing region for the associated control.
Protected property DesignerStateGets an object that is used to persist data for the associated control at design time.
Protected property DesignTimeElementObsolete. Gets the design-time object representing the control that is associated with the HtmlControlDesigner object on the design surface. (Inherited from HtmlControlDesigner.)
Protected property DesignTimeElementViewObsolete. Gets the view-control object for the control designer.
Public property DesignTimeHtmlRequiresLoadCompleteObsolete. Gets a value indicating whether the design host must finish loading before the GetDesignTimeHtml method can be called.
Public property ExpressionsGets the expression bindings for the current control at design time. (Inherited from HtmlControlDesigner.)
Protected property HidePropertiesInTemplateModeInfrastructure. Gets a value indicating whether the properties of the associated control are hidden when the control is in template mode.
Public property IDGets or sets the ID string for the control.
Protected property InheritanceAttributeGets an attribute that indicates the type of inheritance of the associated component. (Inherited from ComponentDesigner.)
Protected property InheritedGets a value indicating whether this component is inherited. (Inherited from ComponentDesigner.)
Protected property InTemplateModeGets a value indicating whether the control is in either template viewing or editing mode in the design host. The InTemplateMode property is read-only.
Public property IsDirtyObsolete. Gets or sets a value indicating whether the Web server control has been marked as changed.
Protected property ParentComponentGets the parent component for this designer. (Inherited from ComponentDesigner.)
Public property ReadOnlyObsolete. Gets or sets a value indicating whether the properties of the control are read-only at design time.
Protected property RootDesignerGets the control designer for the Web Forms page that contains the associated control.
Protected property ShadowPropertiesGets a collection of property values that override user settings. (Inherited from ComponentDesigner.)
Public property ShouldCodeSerializeObsolete. 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.)
Protected property TagGets an object representing the HTML markup element for the associated control.
Public property TemplateGroupsGets a collection of template groups, each containing one or more template definitions.
Protected property UsePreviewControlGets a value indicating whether the control designer uses a temporary preview control to generate the design-time HTML markup.
Public property VerbsGets the design-time verbs supported by the component that is associated with the designer. (Inherited from ComponentDesigner.)
Public property ViewControlGets or sets a Web server control that can be used for previewing the design-time HTML markup.
Public property ViewControlCreatedGets or sets a value indicating whether a View control has been created for display on the design surface.
Protected property VisibleGets a value that indicates whether the control is visible at design time.
Top
Methods
  NameDescription
Protected method CreateErrorDesignTimeHtml(String)Creates HTML markup to display a specified error message at design time.
Protected method CreateErrorDesignTimeHtml(String, Exception)Creates the HTML markup to display a specified exception error message at design time.
Protected method CreatePlaceHolderDesignTimeHtmlProvides a simple rectangular placeholder representation that displays the type and ID of the control.
Protected method CreatePlaceHolderDesignTimeHtml(String)Provides a simple rectangular placeholder representation that displays the type and ID of the control, and also additional specified instructions or information.
Protected method CreateViewControlReturns a copy of the associated control for viewing or rendering on the design surface.
Public method DisposeReleases all resources used by the ComponentDesigner. (Inherited from ComponentDesigner.)
Protected method Dispose(Boolean)Releases the unmanaged resources that are used by the HtmlControlDesigner object and optionally releases the managed resources. (Inherited from HtmlControlDesigner.)
Public method DoDefaultActionCreates 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.)
Public method Equals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected method FinalizeAttempts to free resources by calling Dispose(false) before the object is reclaimed by garbage collection. (Inherited from ComponentDesigner.)
Public method GetBoundsRetrieves the coordinates of the rectangle representing the boundaries for the control as displayed on the design surface.
Public method GetDesignTimeHtmlRetrieves the HTML markup that is used to represent the control at design time.
Public method GetDesignTimeHtml(DesignerRegionCollection)Retrieves the HTML markup to display the control and populates the collection with the current control designer regions.
Public method Static member GetDesignTimeResourceProviderFactoryReturns an appropriate resource provider factory, depending on the globalization settings in the configuration file for the site.
Public method GetEditableDesignerRegionContentReturns the content for an editable region of the design-time view of the associated control.
Protected method GetEmptyDesignTimeHtmlRetrieves the HTML markup to represent a Web server control at design time that will have no visual representation at run time.
Protected method GetErrorDesignTimeHtmlRetrieves the HTML markup that provides information about the specified exception.
Public method GetHashCodeServes as the default hash function. (Inherited from Object.)
Public method GetPersistenceContentRetrieves the persistable inner HTML markup of the control at design time.
Public method GetPersistInnerHtmlObsolete. Retrieves the persistable inner HTML markup of the control.
Protected method GetServiceAttempts to retrieve the specified type of service from the design mode site of the designer's component. (Inherited from ComponentDesigner.)
Public method GetTypeGets the Type of the current instance. (Inherited from Object.)
Public method GetViewRenderingRetrieves an object that contains the design-time markup for the content and regions of the associated control.
Public method Static member GetViewRendering(Control)Retrieves an object that contains the design-time markup for the content and regions of the specified control.
Public method Static member GetViewRendering(ControlDesigner)Retrieves an object that contains the design-time markup for the content and regions of the associated control for the specified control designer.
Public method InitializeInitializes the control designer and loads the specified component. (Overrides HtmlControlDesignerInitialize(IComponent).)
Public method InitializeExistingComponentReinitializes an existing component. (Inherited from ComponentDesigner.)
Public method InitializeNewComponentInitializes a newly created component. (Inherited from ComponentDesigner.)
Public method InitializeNonDefaultObsolete. Initializes the settings for an imported component that is already initialized to settings other than the defaults. (Inherited from ComponentDesigner.)
Public method InvalidateInvalidates the whole area of the control that is displayed on the design surface and signals the control designer to redraw the control.
Public method 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.
Protected method InvokeGetInheritanceAttributeGets the InheritanceAttribute of the specified ComponentDesigner. (Inherited from ComponentDesigner.)
Public method Static member InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String)Wraps a series of changes into a transaction, using the specified parameters that can be rolled back as a unit with the undo functionality of the design host.
Public method Static member InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String, MemberDescriptor)Wraps a series of changes into a transaction, using the specified parameters that can be rolled back as a unit with the undo functionality of the design host.
Public method Static member InvokeTransactedChange(IServiceProvider, IComponent, TransactedChangeCallback, Object, String, MemberDescriptor)Wraps a series of changes into a transaction, using the specified parameters that can be rolled back as a unit with the undo functionality of the design host.
Public method IsPropertyBoundObsolete. Retrieves a value indicating whether the specified property on the associated control is data-bound.
Public method LocalizeUses the provided resource writer to persist the localizable properties of the associated control to a resource in the design host.
Protected method MemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public method OnAutoFormatAppliedCalled when a predefined, automatic formatting scheme has been applied to the associated control.
Protected method OnBehaviorAttachedObsolete. Called when a behavior is associated with the element. (Inherited from HtmlControlDesigner.)
Protected method OnBehaviorDetachingObsolete. Called when a behavior disassociates from the element. (Inherited from HtmlControlDesigner.)
Protected method OnBindingsCollectionChangedObsolete. Called when the data-binding collection changes. (Overrides HtmlControlDesignerOnBindingsCollectionChanged(String).)
Protected method OnClickCalled by the design host when the user clicks the associated control at design time.
Public method OnComponentChangedCalled when the associated control changes.
Public method OnComponentChangingRepresents the method that will handle the ComponentChanging event for the associated control.
Protected method OnControlResizeObsolete. Called when the associated Web server control has been resized in the design host at design time.
Protected method OnPaintCalled when the control designer draws the associated control on the design surface, if the CustomPaint value is true.
Public method OnSetComponentDefaultsObsolete. Sets the default properties for the component. (Inherited from ComponentDesigner.)
Public method OnSetParentProvides a way to perform additional processing when the associated control is attached to a parent control. (Inherited from HtmlControlDesigner.)
Protected method PostFilterAttributesAllows a designer to change or remove items from the set of attributes that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected method PostFilterEventsAllows a designer to change or remove items from the set of events that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected method PostFilterPropertiesAllows a designer to change or remove items from the set of properties that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected method PreFilterAttributesAllows a designer to add to the set of attributes that it exposes through a TypeDescriptor. (Inherited from ComponentDesigner.)
Protected method PreFilterEventsSets the list of events that are exposed at design-time for the TypeDescriptor object for the component. (Inherited from HtmlControlDesigner.)
Protected method PreFilterPropertiesAdds 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. (Overrides HtmlControlDesignerPreFilterProperties(IDictionary).)
Protected method RaiseComponentChangedNotifies the IComponentChangeService that this component has been changed. (Inherited from ComponentDesigner.)
Protected method RaiseComponentChangingNotifies the IComponentChangeService that this component is about to be changed. (Inherited from ComponentDesigner.)
Public method RaiseResizeEventObsolete. Raises the OnControlResize event.
Public method RegisterCloneRegisters internal data in a cloned control.
Public method SetEditableDesignerRegionContentSpecifies the content for an editable region of the control at design time.
Protected method SetRegionContentSpecifies the content for an editable region in the design-time view of the control.
Protected method SetViewFlagsAssigns the specified bitwise ViewFlags enumeration to the specified flag value.
Public method ToStringReturns a string that represents the current object. (Inherited from Object.)
Public method UpdateDesignTimeHtmlRefreshes the design-time HTML markup for the associated Web server control by calling the GetDesignTimeHtml method.
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implemetation Private method IDesignerFilterPostFilterAttributesFor a description of this member, see the IDesignerFilterPostFilterAttributes method. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private method IDesignerFilterPostFilterEventsFor a description of this member, see the IDesignerFilterPostFilterEvents method. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private method IDesignerFilterPostFilterPropertiesFor a description of this member, see the IDesignerFilterPostFilterProperties method. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private method IDesignerFilterPreFilterAttributesFor a description of this member, see the IDesignerFilterPreFilterAttributes method. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private method IDesignerFilterPreFilterEventsFor a description of this member, see the IDesignerFilterPreFilterEvents method. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private method IDesignerFilterPreFilterPropertiesFor a description of this member, see the IDesignerFilterPreFilterProperties method. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private property ITreeDesignerChildrenFor a description of this member, see the ITreeDesignerChildren property. (Inherited from ComponentDesigner.)
Explicit interface implemetation Private property ITreeDesignerParentFor a description of this member, see the ITreeDesignerParent property. (Inherited from ComponentDesigner.)
Top
Remarks

The ControlDesigner class provides a base control designer class that can be inherited from and extended to provide design-time support for a Web server control in a design host, such as Visual Studio 2005.

The object model for working with design-time rendering is improved over earlier versions, with the following new base classes to provide access to the simplified object model:

Automatic Formatting

You can create a variety of automatic and pre-defined formats that can simplify the process of page developers who are applying complex style changes to custom Web server controls. For example, the TableDesigner control, which derives from the ControlDesigner class, provides many automatic formats from which to choose. To implement and provide automatic formatting in your custom controls, use the following features:

Action Lists (Smart Tags)

Action lists are menus of important or widely used tasks that a page developer who uses a control can perform in a design-time user interface (UI), such as Visual Studio 2005. For example, the design-time view of your control could provide a menu of available tasks. This includes a task to format the control automatically. To learn about action lists, start with the following features:

Control Designer Regions

Regions are editable areas in the design-time view of a Web server control. This feature offers WYSIWYG-like editing of the template content, inner controls, and properties at design time. You can have the control designer create controls in regions or you can use the Toolbox to drag and drop controls into regions. Regions are managed with the following features:

Templates

The model for creating a UI for design-time editing of templated controls, such as the GridView control, has been greatly improved from earlier versions. You can create complex custom controls that include templates for various parts of the control, and your custom control designer can help page developers who are modifying templates with the following features:

Design-Time Rendering

The ControlDesigner class has the following methods to support design-time rendering of the Web server control. Most of these methods are the same as in earlier versions:

Examples

The following code example demonstrates how to create a simple designer class that derives from the ControlDesigner class. This control designer supports a custom TextControl class and provides a command to change the text size of a control at design time. The control designer is associated with the control by specifying the control designer in a DesignerAttribute object declaration on the TextControl class. The key to persisting property changes from the control designer to the HTML markup is found in the ToggleTextSize method of the custom ActionList class.

To try the example, add a reference to the System.Design.dll assembly and compile the code.

Imports Microsoft.VisualBasic
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.ComponentModel.Design

Namespace ASPNet.Design.Samples.VB

    ' Simple text Web control renders a text string. 
    ' This control is associated with the TextSizeWebControlDesigner.
    <DesignerAttribute(GetType(TextSizeWebControlDesigner)), _
        ToolboxData("<{0}:TextControl runat='server'></{0}:TextControl>")> _
    Public Class TextControl
        Inherits Label

        Private _largeText As Boolean = True 

        ' Constructor 
        Public Sub New()
            Text = "Test Phrase"
            SetSize()
        End Sub 

        ' Determines whether the text is large or small
        <Bindable(True), Category("Appearance"), DefaultValue(True)> _
        Public Property LargeText() As Boolean 
            Get 
                Return _largeText
            End Get 
            Set(ByVal value As Boolean)
                _largeText = value
                SetSize()
            End Set 
        End Property 

        ' Applies the LargeText property to the control 
        Private Sub SetSize()
            If LargeText Then 
                Me.Font.Size = FontUnit.XLarge
            Else 
                Me.Font.Size = FontUnit.Small
            End If 
        End Sub 
    End Class 


    ' This control designer offers DesignerActionList commands 
    ' that can alter the design time html of the associated control. 
    Public Class TextSizeWebControlDesigner
        Inherits ControlDesigner

        Private _actionLists As DesignerActionListCollection

        ' Do not allow direct resizing of the control 
        Public Overrides ReadOnly Property AllowResize() As Boolean 
            Get 
                Return False 
            End Get 
        End Property 

        ' Return a custom ActionList collection 
        Public Overrides ReadOnly Property ActionLists() As System.ComponentModel.Design.DesignerActionListCollection
            Get 
                If IsNothing(_actionLists) Then
                    _actionLists = New DesignerActionListCollection()
                    _actionLists.AddRange(MyBase.ActionLists)

                    ' Add a custom DesignerActionList
                    _actionLists.Add(New ActionList(Me))
                End If 

                Return _actionLists
            End Get 
        End Property 

        ' Create a custom class of DesignerActionList 
        Public Class ActionList
            Inherits DesignerActionList
            Private _parent As TextSizeWebControlDesigner
            Private _items As DesignerActionItemCollection

            ' Constructor 
            Public Sub New(ByRef parent As TextSizeWebControlDesigner)
                MyBase.New(parent.Component)
                _parent = parent
            End Sub 

            ' Create the ActionItem collection and add one command 
            Public Overrides Function GetSortedActionItems() As DesignerActionItemCollection
                If IsNothing(_items) Then
                    _items = New DesignerActionItemCollection()
                    _items.Add(New DesignerActionMethodItem(Me, "ToggleLargeText", "Toggle Text Size", True))
                End If 

                Return _items
            End Function 

            ' ActionList command to change the text size 
            Private Sub ToggleLargeText()
                ' Get a reference to the parent designer's associated control 
                Dim ctl As TextControl = CType(_parent.Component, TextControl)

                ' Get a reference to the control's LargeText property 
                Dim propDesc As PropertyDescriptor = TypeDescriptor.GetProperties(ctl)("LargeText")

                ' Get the current value of the property 
                Dim v As Boolean = CType(propDesc.GetValue(ctl), Boolean)
                ' Toggle the property value
                propDesc.SetValue(ctl, (Not v))
            End Sub 
        End Class 
    End Class 
End Namespace


...


<%@ Page Language="VB" %>
<%@ Register TagPrefix="aspSample" 
    Namespace="ASPNet.Design.Samples.VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <aspSample:TextControl ID="TextControl1" runat="server">
        </aspSample:TextControl>

    </div>
    </form>
</body>
</html>
using System;
using System.Web.UI;
using System.Drawing;
using System.Web.UI.Design;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.ComponentModel.Design;

namespace ASPNet.Design.Samples.CS
{
    // Simple text Web control renders a text string. 
    // This control is associated with the TextSizeWebControlDesigner.
    [DesignerAttribute(typeof(TextSizeWebControlDesigner)),
    ToolboxData("<{0}:TextControl runat=\"server\"></{0}:TextControl>")]
    public class TextControl : Label
    {
        private bool _largeText = true;

        // Constructor 
        public TextControl()
        {
            Text = "Test Phrase";
            SetSize();
        }

        // Determines whether the text is large or small
        [Bindable(true), Category("Appearance"), DefaultValue("true")]
        public bool LargeText
        {
            get { return _largeText; }
            set
            {
                _largeText = value;
                SetSize();
            }
        }

        // Applies the LargeText property to the control 
        private void SetSize()
        {
            if (LargeText)
                this.Font.Size = FontUnit.XLarge;
            else 
                this.Font.Size = FontUnit.Small;
        }
    }

    // This control designer offers DesignerActionList commands 
    // that can alter the design time html of the associated control. 
    public class TextSizeWebControlDesigner : ControlDesigner
    {
        private DesignerActionListCollection _actionLists = null;

        // Do not allow direct resizing of the control 
        public override bool AllowResize
        {
            get { return false; }
        }

        // Return a custom ActionList collection 
        public override DesignerActionListCollection ActionLists
        {
            get
            {
                if (_actionLists == null)
                {
                    _actionLists = new DesignerActionListCollection();
                    _actionLists.AddRange(base.ActionLists);

                    // Add a custom DesignerActionList
                    _actionLists.Add(new ActionList(this));
                }
                return _actionLists;
            }
        }

        public class ActionList : DesignerActionList
        {
            private TextSizeWebControlDesigner _parent;
            private DesignerActionItemCollection _items;

            // Constructor 
            public ActionList(TextSizeWebControlDesigner parent)
                : base(parent.Component)
            {
                _parent = parent;

            }

            // Create the ActionItem collection and add one command 
            public override DesignerActionItemCollection GetSortedActionItems()
            {
                if (_items == null)
                {
                    _items = new DesignerActionItemCollection();
                    _items.Add(new DesignerActionMethodItem(this, "ToggleLargeText", "Toggle Text Size", true));
                }
                return _items;
            }

            // ActionList command to change the text size 
            private void ToggleLargeText()
            {
                // Get a reference to the parent designer's associated control
                TextControl ctl = (TextControl)_parent.Component;

                // Get a reference to the control's LargeText property
                PropertyDescriptor propDesc = TypeDescriptor.GetProperties(ctl)["LargeText"];

                // Get the current value of the property 
                bool v = (bool)propDesc.GetValue(ctl);

                // Toggle the property value
                propDesc.SetValue(ctl, !v);
            }
        }
    }
}


...


<%@ Page Language="C#" %>
<%@ Register TagPrefix="aspSample" 
    Namespace="ASPNet.Design.Samples.CS" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    <aspSample:TextControl ID="TextControl1" runat="server">
    </aspSample:TextControl>


    </div>
    </form>
</body>
</html>
Version Information

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
Platforms

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Inheritance Hierarchy
SystemObject
   System.ComponentModel.DesignComponentDesigner
     System.Web.UI.DesignHtmlControlDesigner
      System.Web.UI.DesignControlDesigner
         System.Web.DynamicData.DesignDynamicDataManagerDesigner
         System.Web.UI.DesignContainerControlDesigner
         System.Web.UI.DesignDataSourceDesigner
         System.Web.UI.DesignExtenderControlDesigner
         System.Web.UI.DesignHierarchicalDataSourceDesigner
         System.Web.UI.DesignQueryExtenderDesigner
         System.Web.UI.DesignReadWriteControlDesigner
         System.Web.UI.DesignScriptManagerDesigner
         System.Web.UI.DesignScriptManagerProxyDesigner
         System.Web.UI.DesignTemplatedControlDesigner
         System.Web.UI.DesignTextControlDesigner
         System.Web.UI.DesignTimerDesigner
         System.Web.UI.DesignUpdatePanelDesigner
         System.Web.UI.DesignUpdateProgressDesigner
         System.Web.UI.DesignUserControlDesigner
         System.Web.UI.Design.WebControlsBaseDataBoundControlDesigner
         System.Web.UI.Design.WebControlsButtonDesigner
         System.Web.UI.Design.WebControlsCalendarDesigner
         System.Web.UI.Design.WebControlsChangePasswordDesigner
         System.Web.UI.Design.WebControlsCheckBoxDesigner
         System.Web.UI.Design.WebControlsCompositeControlDesigner
         System.Web.UI.Design.WebControlsContentDesigner
         System.Web.UI.Design.WebControlsContentPlaceHolderDesigner
         System.Web.UI.Design.WebControlsDataPagerDesigner
         System.Web.UI.Design.WebControlsHiddenFieldDesigner
         System.Web.UI.Design.WebControlsLiteralDesigner
         System.Web.UI.Design.WebControlsLoginNameDesigner
         System.Web.UI.Design.WebControlsLoginViewDesigner
         System.Web.UI.Design.WebControlsPasswordRecoveryDesigner
         System.Web.UI.Design.WebControlsPreviewControlDesigner
         System.Web.UI.Design.WebControlsRepeaterDesigner
         System.Web.UI.Design.WebControlsSiteMapPathDesigner
         System.Web.UI.Design.WebControlsSubstitutionDesigner
         System.Web.UI.Design.WebControlsTableDesigner
         System.Web.UI.Design.WebControls.WebPartsProxyWebPartManagerDesigner
         System.Web.UI.Design.WebControls.WebPartsWebPartManagerDesigner
         System.Web.UI.Design.WebControls.WebPartsWebZoneDesigner
         System.Web.UI.Design.WebControlsXmlDesigner