ControlDesigner.Initialize(IComponent) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Initialiseert de ontwerpfunctie voor besturingselementen en laadt het opgegeven onderdeel.
public:
override void Initialize(System::ComponentModel::IComponent ^ component);
public override void Initialize(System.ComponentModel.IComponent component);
override this.Initialize : System.ComponentModel.IComponent -> unit
Public Overrides Sub Initialize (component As IComponent)
Parameters
- component
- IComponent
Het besturingselement dat wordt ontworpen.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een besturingsklasse en een ontwerpklasse voor besturingselementen gebruikt die de Initialize methode overschrijft om interne variabelen te initialiseren.
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();
}
}
}
}
' Create a designer class for a custom class,
' named Simple.
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
Opmerkingen
De Initialize methode wordt aangeroepen door de ontwerphost om de volgende acties uit te voeren:
Laad de ontwerpfunctie voor besturingselementen met het onderdeel dat u wilt ontwerpen.
Stel de weergave voor het besturingselement in met behulp van de SetViewFlags methode.
Controleer of het bijbehorende besturingselement van het juiste type is.
Van toepassing op
Zie ook
- IDesigner
- overzicht van ASP.NET Control Designers