.NET Framework Class Library
ControlDesignerInitialize Method

Initializes the control designer and loads the specified component.

Namespace:   System.Web.UI.Design
Assembly:  System.Design (in System.Design.dll)
Syntax
Public Overrides Sub Initialize ( _
	component As [%$TOPIC/599dew4w_en-us_VS_110_1_0_0_0_0%] _
)
public override void Initialize(
	[%$TOPIC/599dew4w_en-us_VS_110_1_0_1_0_0%] component
)
public:
virtual void Initialize(
	[%$TOPIC/599dew4w_en-us_VS_110_1_0_2_0_0%]^ component
) override
abstract Initialize : 
        component:[%$TOPIC/599dew4w_en-us_VS_110_1_0_3_0_0%] -> unit  
override Initialize : 
        component:[%$TOPIC/599dew4w_en-us_VS_110_1_0_3_0_1%] -> unit

Parameters

component
Type: System.ComponentModelIComponent

The control being designed.

Implements

IDesignerInitialize(IComponent)
Remarks

The Initialize method is called by the design host to complete the following actions:

  • Load the control designer with the component to design.

  • Set up the view on the control using the SetViewFlags method.

  • Verify that the associated control is of the right type.

Examples

The following code example demonstrates how to use a control class and a control designer class that override the Initialize method to initialize internal variables.

' Create a designer class for a custom class, 
' named Simple. 
Imports System
Imports System.ComponentModel
Imports System.IO
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.WebControls
Imports System.Security.Permissions
Imports AspNet.Samples

Namespace AspNet.Samples

   Public NotInheritable Class SimpleDesigner
      Inherits System.Web.UI.Design.ControlDesigner
      ' Declare a reference to the Simple class 
      Private simpleControl As Simple

      ' Create a constructor for the designer class 
      ' When an instance of the designer is created, 
      ' the Text property of the instance of a Simple control 
      ' is set to the designer's ID property. 
      ' the designer is called. 
      Public Sub New()
        simpleControl = CType(Component, Simple)      
        simpleControl.Text = Me.ID
      End Sub 

      ' Override the Initialize method to ensure 
      ' that the designer is always working with 
      ' an instance of the Simple class. 
      Overrides Public Sub Initialize( _
       ByVal component As IComponent _
      )

        If Not (component Is simpleControl)
                throw new ArgumentException( _
                 "The component must be an instance of the Simple class.", _
                 "component")
        End If 

        MyBase.Initialize(component)

      End Sub 

      Overrides Public ReadOnly Property AllowResize As Boolean 
        Get 
          Return True 
        End Get 
      End Property 

      Public Overrides Function GetDesignTimeHtml() As String 
         ' Component is the instance of the component or control that 
         ' this designer object is associated with. This property is  
         ' inherited from System.ComponentModel.ComponentDesigner.
         simpleControl = CType(Component, Simple)

         If simpleControl.Text.Length > 0 Then 
            Dim sw As New StringWriter()
            Dim tw As New HtmlTextWriter(sw)

            Dim placeholderLink As New HyperLink()

            ' Put simpleControl.Text into the link's Text.
            placeholderLink.Text = simpleControl.Text
            placeholderLink.NavigateUrl = simpleControl.Text
            placeholderLink.RenderControl(tw)

            Return sw.ToString()
         Else 
            Return GetEmptyDesignTimeHtml()
         End If 
      End Function 

      ' Override the OnControlResize method to 
      ' set the IsDirty property to true and 
      ' call the UpdateDesignTimeHtml method.       
      Overrides Protected Sub OnControlResize()
        Me.IsDirty = True 
        Me.UpdateDesignTimeHtml
      End Sub 

   End Class 
End Namespace
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.WebControls;

namespace AspNet.Samples
{
    // Create a custom class to render the Text property
    [Designer(typeof(SimpleDesigner)), DefaultProperty("Text"), 
    ToolboxData("<{0}:Simple runat=\"server\"></{0}:Simple>")]
    public sealed class Simple : WebControl
    {
        public Simple()
        { }

        // Create a Text property
        [Browsable(true), Bindable(true), 
            PersistenceMode(PersistenceMode.Attribute)]
        public string Text
        {
            get
            {
                object o = ViewState["TextProp"];
                return (o == null) ? "Sample Text" : (string)o;
            }
            set { ViewState["TextProp"] = value; }
        }

        // Render the text inside the control 
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.Write(Text);
        }
    }
}

namespace AspNet.Samples
{
    //Create a designer class for the Simple control 
    public sealed class SimpleDesigner : ControlDesigner
    {
        // Declare a reference to the Simple class 
        private Simple simpleControl;

        public SimpleDesigner()
        { }

        public override void Initialize(IComponent ponent)
        {
            base.Initialize(ponent);

            // Get a reference to the control
            simpleControl = (Simple)ponent;

            //Set Text to the control's ID
            simpleControl.Text = simpleControl.ID;
        }

        // Allow resizing the control in the design host 
        public override bool AllowResize
        {
            get
            {
                return true;
            }
        }

        public override string GetDesignTimeHtml()
        {
            if (simpleControl.Text.Length > 0)
            {
                string spec = "<a href='{0}.aspx'>{0}</a>";
                return String.Format(spec, simpleControl.Text);
            }
            else 
                return GetEmptyDesignTimeHtml();
        }
    }
}
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
.NET Framework Security
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.