.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
public override function Initialize(
	component : [%$TOPIC/599dew4w_en-us_VS_110_1_0_4_0_0%]
)

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.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1