Freigeben über


ControlDesigner.Initialize-Methode

Initialisiert den Steuerelement-Designer und lädt die angegebene Komponente.

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

Syntax

'Declaration
Public Overrides Sub Initialize ( _
    component As IComponent _
)
'Usage
Dim instance As ControlDesigner
Dim component As IComponent

instance.Initialize(component)
public override void Initialize (
    IComponent component
)
public:
virtual void Initialize (
    IComponent^ component
) override
public void Initialize (
    IComponent component
)
public override function Initialize (
    component : IComponent
)

Parameter

  • component
    Das Steuerelement, das entworfen wird.

Hinweise

Die Initialize-Methode wird vom Entwurfshost aufgerufen, um die folgenden Aktionen abzuschließen:

  • Laden des Steuerelement-Designers mit der zu entwerfenden Komponente.

  • Einrichten der Ansicht für das Steuerelement mit der SetViewFlags-Methode.

  • Überprüfen Sie, ob das zugeordnete Steuerelement vom richtigen Typ ist.

Beispiel

Im folgenden Codebeispiel wird die Verwendung einer Steuerelementklasse und einer Steuerelement-Designer-Klasse gezeigt, die die Initialize-Methode überschreiben, um interne Variablen zu initialisieren.

' 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.href = 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();
        }
    }
}

.NET Framework-Sicherheit

  • Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter .

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

ControlDesigner-Klasse
ControlDesigner-Member
System.Web.UI.Design-Namespace
IDesigner

Weitere Ressourcen

Entwurfszeitunterstützung für Web Forms