ControlDesigner Class

 

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

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

System.Object
  System.ComponentModel.Design.ComponentDesigner
    System.Web.UI.Design.HtmlControlDesigner
      System.Web.UI.Design.ControlDesigner
        System.Web.DynamicData.Design.DynamicDataManagerDesigner
        System.Web.UI.Design.ContainerControlDesigner
        System.Web.UI.Design.DataSourceDesigner
        System.Web.UI.Design.ExtenderControlDesigner
        System.Web.UI.Design.HierarchicalDataSourceDesigner
        System.Web.UI.Design.QueryExtenderDesigner
        System.Web.UI.Design.ReadWriteControlDesigner
        System.Web.UI.Design.ScriptManagerDesigner
        System.Web.UI.Design.ScriptManagerProxyDesigner
        System.Web.UI.Design.TemplatedControlDesigner
        System.Web.UI.Design.TextControlDesigner
        System.Web.UI.Design.TimerDesigner
        System.Web.UI.Design.UpdatePanelDesigner
        System.Web.UI.Design.UpdateProgressDesigner
        System.Web.UI.Design.UserControlDesigner
        System.Web.UI.Design.WebControls.BaseDataBoundControlDesigner
        System.Web.UI.Design.WebControls.ButtonDesigner
        System.Web.UI.Design.WebControls.CalendarDesigner
        System.Web.UI.Design.WebControls.ChangePasswordDesigner
        System.Web.UI.Design.WebControls.CheckBoxDesigner
        System.Web.UI.Design.WebControls.CompositeControlDesigner
        System.Web.UI.Design.WebControls.ContentDesigner
        System.Web.UI.Design.WebControls.ContentPlaceHolderDesigner
        System.Web.UI.Design.WebControls.DataPagerDesigner
        System.Web.UI.Design.WebControls.HiddenFieldDesigner
        System.Web.UI.Design.WebControls.LiteralDesigner
        System.Web.UI.Design.WebControls.LoginNameDesigner
        System.Web.UI.Design.WebControls.LoginViewDesigner
        System.Web.UI.Design.WebControls.PasswordRecoveryDesigner
        System.Web.UI.Design.WebControls.PreviewControlDesigner
        System.Web.UI.Design.WebControls.RepeaterDesigner
        System.Web.UI.Design.WebControls.SiteMapPathDesigner
        System.Web.UI.Design.WebControls.SubstitutionDesigner
        System.Web.UI.Design.WebControls.TableDesigner
        System.Web.UI.Design.WebControls.WebParts.ProxyWebPartManagerDesigner
        System.Web.UI.Design.WebControls.WebParts.WebPartManagerDesigner
        System.Web.UI.Design.WebControls.WebParts.WebZoneDesigner
        System.Web.UI.Design.WebControls.XmlDesigner

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public class ControlDesigner : HtmlControlDesigner

NameDescription
System_CAPS_pubmethodControlDesigner()

Initializes a new instance of the ControlDesigner class.

NameDescription
System_CAPS_pubpropertyActionLists

Gets the action list collection for the control designer.(Overrides ComponentDesigner.ActionLists.)

System_CAPS_pubpropertyAllowResize

Gets a value indicating whether the control can be resized in the design-time environment.

System_CAPS_pubpropertyAssociatedComponents

Gets the collection of components associated with the component managed by the designer.(Inherited from ComponentDesigner.)

System_CAPS_pubpropertyAutoFormats

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

System_CAPS_pubpropertyBehavior

Obsolete.Gets or sets the DHTML behavior that is associated with the designer.(Inherited from HtmlControlDesigner.)

System_CAPS_pubpropertyComponent

Gets the component this designer is designing.(Inherited from ComponentDesigner.)

System_CAPS_pubpropertyDataBindings

Gets the data bindings collection for the current control.(Inherited from HtmlControlDesigner.)

System_CAPS_protpropertyDataBindingsEnabled

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

System_CAPS_protpropertyDesignerState

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

System_CAPS_protpropertyDesignTimeElement

Obsolete.Gets the design-time object representing the control that is associated with the HtmlControlDesigner object on the design surface.(Inherited from HtmlControlDesigner.)

System_CAPS_protpropertyDesignTimeElementView

Obsolete.Gets the view-control object for the control designer.

System_CAPS_pubpropertyDesignTimeHtmlRequiresLoadComplete

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

System_CAPS_pubpropertyExpressions

Gets the expression bindings for the current control at design time.(Inherited from HtmlControlDesigner.)

System_CAPS_protpropertyHidePropertiesInTemplateMode

This API supports the product infrastructure and is not intended to be used directly from your code. Gets a value indicating whether the properties of the associated control are hidden when the control is in template mode.

System_CAPS_pubpropertyID

Gets or sets the ID string for the control.

System_CAPS_protpropertyInheritanceAttribute

Gets an attribute that indicates the type of inheritance of the associated component.(Inherited from ComponentDesigner.)

System_CAPS_protpropertyInherited

Gets a value indicating whether this component is inherited.(Inherited from ComponentDesigner.)

System_CAPS_protpropertyInTemplateMode

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.

System_CAPS_pubpropertyIsDirty

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

System_CAPS_protpropertyParentComponent

Gets the parent component for this designer.(Inherited from ComponentDesigner.)

System_CAPS_pubpropertyReadOnly

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

System_CAPS_protpropertyRootDesigner

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

System_CAPS_protpropertyShadowProperties

Gets a collection of property values that override user settings.(Inherited from ComponentDesigner.)

System_CAPS_pubpropertyShouldCodeSerialize

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

System_CAPS_protpropertyTag

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

System_CAPS_pubpropertyTemplateGroups

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

System_CAPS_protpropertyUsePreviewControl

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

System_CAPS_pubpropertyVerbs

Gets the design-time verbs supported by the component that is associated with the designer.(Inherited from ComponentDesigner.)

System_CAPS_pubpropertyViewControl

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

System_CAPS_pubpropertyViewControlCreated

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

System_CAPS_protpropertyVisible

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

NameDescription
System_CAPS_protmethodCreateErrorDesignTimeHtml(String)

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

System_CAPS_protmethodCreateErrorDesignTimeHtml(String, Exception)

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

System_CAPS_protmethodCreatePlaceHolderDesignTimeHtml()

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

System_CAPS_protmethodCreatePlaceHolderDesignTimeHtml(String)

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

System_CAPS_protmethodCreateViewControl()

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

System_CAPS_pubmethodDispose()

Releases all resources used by the ComponentDesigner.(Inherited from ComponentDesigner.)

System_CAPS_protmethodDispose(Boolean)

Releases the unmanaged resources that are used by the HtmlControlDesigner object and optionally releases the managed resources.(Inherited from HtmlControlDesigner.)

System_CAPS_pubmethodDoDefaultAction()

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

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Attempts to free resources by calling Dispose(false) before the object is reclaimed by garbage collection.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodGetBounds()

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

System_CAPS_pubmethodGetDesignTimeHtml()

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

System_CAPS_pubmethodGetDesignTimeHtml(DesignerRegionCollection)

Retrieves the HTML markup to display the control and populates the collection with the current control designer regions.

System_CAPS_pubmethodSystem_CAPS_staticGetDesignTimeResourceProviderFactory(IServiceProvider)

Returns an appropriate resource provider factory, depending on the globalization settings in the configuration file for the site.

System_CAPS_pubmethodGetEditableDesignerRegionContent(EditableDesignerRegion)

Returns the content for an editable region of the design-time view of the associated control.

System_CAPS_protmethodGetEmptyDesignTimeHtml()

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

System_CAPS_protmethodGetErrorDesignTimeHtml(Exception)

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

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetPersistenceContent()

Retrieves the persistable inner HTML markup of the control at design time.

System_CAPS_pubmethodGetPersistInnerHtml()

Obsolete.Retrieves the persistable inner HTML markup of the control.

System_CAPS_protmethodGetService(Type)

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

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodGetViewRendering()

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

System_CAPS_pubmethodSystem_CAPS_staticGetViewRendering(Control)

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

System_CAPS_pubmethodSystem_CAPS_staticGetViewRendering(ControlDesigner)

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

System_CAPS_pubmethodInitialize(IComponent)

Initializes the control designer and loads the specified component.(Overrides HtmlControlDesigner.Initialize(IComponent).)

System_CAPS_pubmethodInitializeExistingComponent(IDictionary)

Reinitializes an existing component.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodInitializeNewComponent(IDictionary)

Initializes a newly created component.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodInitializeNonDefault()

Obsolete.Initializes the settings for an imported component that is already initialized to settings other than the defaults.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodInvalidate()

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

System_CAPS_pubmethodInvalidate(Rectangle)

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

System_CAPS_protmethodInvokeGetInheritanceAttribute(ComponentDesigner)

Gets the InheritanceAttribute of the specified ComponentDesigner.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodSystem_CAPS_staticInvokeTransactedChange(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.

System_CAPS_pubmethodSystem_CAPS_staticInvokeTransactedChange(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.

System_CAPS_pubmethodSystem_CAPS_staticInvokeTransactedChange(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.

System_CAPS_pubmethodIsPropertyBound(String)

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

System_CAPS_pubmethodLocalize(IDesignTimeResourceWriter)

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

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodOnAutoFormatApplied(DesignerAutoFormat)

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

System_CAPS_protmethodOnBehaviorAttached()

Obsolete.Called when a behavior is associated with the element.(Inherited from HtmlControlDesigner.)

System_CAPS_protmethodOnBehaviorDetaching()

Obsolete.Called when a behavior disassociates from the element.(Inherited from HtmlControlDesigner.)

System_CAPS_protmethodOnBindingsCollectionChanged(String)

Obsolete.Called when the data-binding collection changes.(Overrides HtmlControlDesigner.OnBindingsCollectionChanged(String).)

System_CAPS_protmethodOnClick(DesignerRegionMouseEventArgs)

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

System_CAPS_pubmethodOnComponentChanged(Object, ComponentChangedEventArgs)

Called when the associated control changes.

System_CAPS_pubmethodOnComponentChanging(Object, ComponentChangingEventArgs)

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

System_CAPS_protmethodOnControlResize()

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

System_CAPS_protmethodOnPaint(PaintEventArgs)

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

System_CAPS_pubmethodOnSetComponentDefaults()

Obsolete.Sets the default properties for the component.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodOnSetParent()

Provides a way to perform additional processing when the associated control is attached to a parent control.(Inherited from HtmlControlDesigner.)

System_CAPS_protmethodPostFilterAttributes(IDictionary)

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

System_CAPS_protmethodPostFilterEvents(IDictionary)

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

System_CAPS_protmethodPostFilterProperties(IDictionary)

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

System_CAPS_protmethodPreFilterAttributes(IDictionary)

Allows a designer to add to the set of attributes that it exposes through a TypeDescriptor.(Inherited from ComponentDesigner.)

System_CAPS_protmethodPreFilterEvents(IDictionary)

Sets the list of events that are exposed at design-time for the TypeDescriptor object for the component.(Inherited from HtmlControlDesigner.)

System_CAPS_protmethodPreFilterProperties(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.(Overrides HtmlControlDesigner.PreFilterProperties(IDictionary).)

System_CAPS_protmethodRaiseComponentChanged(MemberDescriptor, Object, Object)

Notifies the IComponentChangeService that this component has been changed.(Inherited from ComponentDesigner.)

System_CAPS_protmethodRaiseComponentChanging(MemberDescriptor)

Notifies the IComponentChangeService that this component is about to be changed.(Inherited from ComponentDesigner.)

System_CAPS_pubmethodRaiseResizeEvent()

Obsolete.Raises the OnControlResize event.

System_CAPS_pubmethodRegisterClone(Object, Object)

Registers internal data in a cloned control.

System_CAPS_pubmethodSetEditableDesignerRegionContent(EditableDesignerRegion, String)

Specifies the content for an editable region of the control at design time.

System_CAPS_protmethodSetRegionContent(EditableDesignerRegion, String)

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

System_CAPS_protmethodSetViewFlags(ViewFlags, Boolean)

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

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

System_CAPS_pubmethodUpdateDesignTimeHtml()

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

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDesignerFilter.PostFilterAttributes(IDictionary)

For a description of this member, see the IDesignerFilter.PostFilterAttributes method.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDesignerFilter.PostFilterEvents(IDictionary)

For a description of this member, see the IDesignerFilter.PostFilterEvents method.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDesignerFilter.PostFilterProperties(IDictionary)

For a description of this member, see the IDesignerFilter.PostFilterProperties method.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDesignerFilter.PreFilterAttributes(IDictionary)

For a description of this member, see the IDesignerFilter.PreFilterAttributes method.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDesignerFilter.PreFilterEvents(IDictionary)

For a description of this member, see the IDesignerFilter.PreFilterEvents method.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIDesignerFilter.PreFilterProperties(IDictionary)

For a description of this member, see the IDesignerFilter.PreFilterProperties method.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyITreeDesigner.Children

For a description of this member, see the ITreeDesigner.Children property.(Inherited from ComponentDesigner.)

System_CAPS_pubinterfaceSystem_CAPS_privpropertyITreeDesigner.Parent

For a description of this member, see the ITreeDesigner.Parent property.(Inherited from ComponentDesigner.)

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:

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 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:

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:

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:

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:

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.

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>

.NET Framework
Available since 1.1

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: