共用方式為


EditorPartDesigner 類別

定義

提供 EditorPart 控制項的設計階段支援。

public ref class EditorPartDesigner : System::Web::UI::Design::WebControls::WebParts::PartDesigner
public class EditorPartDesigner : System.Web.UI.Design.WebControls.WebParts.PartDesigner
type EditorPartDesigner = class
    inherit PartDesigner
Public Class EditorPartDesigner
Inherits PartDesigner
繼承

範例

下列程式代碼範例會建立簡單的自定義 EditorPart 控件,讓使用者變更 ToolTip 目標控件的屬性。 相關聯的 EditorPartDesigner 會驗證控件,並在設計時間將使用者輸入文字框取代為說明隱藏的標籤。

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web.UI.Design.WebControls.WebParts;

/// <summary>
/// SecretEditorPart is a custom EditorPart control that
/// allows the end user to change the ToolTip property of
/// a control by typing the value into a TextBox. 
/// SecretEditorPartDesigner hides the TextBox at design
/// time via the view control and replaces it with the 
/// words "The textbox is now hidden."
/// </summary>
namespace Samples.AspNet.CS.Controls
{
    [Designer(typeof(SecretEditorPartDesigner))]
    public class SecretEditorPart : EditorPart
    {
        public CheckBox UseCustom = new CheckBox();
        public TextBox TTTextBox = new TextBox();

        protected override void CreateChildControls()
        {
            base.CreateChildControls();
            Controls.Add(UseCustom);
            Literal lApply = new Literal();
            lApply.Text = "Apply custom ToolTip<br />";
            Controls.Add(lApply);
            Controls.Add(TTTextBox);
        }

        public override bool ApplyChanges()
        {
            EnsureChildControls();
            try
            {
                WebPartToEdit.ToolTip = TTTextBox.Text;
            }
            catch
            {
                return false;
            }
            return true;
        }

        public override void SyncChanges()
        {
            // Abstract method not implemented for this example
            return;
        }
    }

    public class SecretEditorPartDesigner : EditorPartDesigner
    {
        public override void Initialize(IComponent component)
        {
            // Validate the associated control
            if (! (component is SecretEditorPart))
            {
                string msg = "The associated control must be of type 'SecretEditorPart'";
                throw new ArgumentException(msg);
            }
            base.Initialize(component);
        }

        public override string GetDesignTimeHtml()
        {
            // Access the view control.
            SecretEditorPart sep = (SecretEditorPart)ViewControl;
           
            // Hide the textbox.
            sep.TTTextBox.Visible = false;

            // Now generate the base rendering.
            string designTimeHtml = base.GetDesignTimeHtml();

            // Insert some text.
            string segment = "</div>";
            designTimeHtml = designTimeHtml.Replace(segment, 
                "The textbox is now hidden." + segment);
            
            // Return the modified rendering.
            return designTimeHtml;
        }
    }
}
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web.UI.Design.WebControls.WebParts

' SecretEditorPart is a custom EditorPart control that
' allows the end user to change the ToolTip property of
' a control by typing the value into a TextBox. 
' SecretEditorPartDesigner hides the TextBox at design
' time via the view control and replaces it with the 
' words "The textbox is now hidden."
Namespace Samples.AspNet.VB.Controls
    <Designer(GetType(SecretEditorPartDesigner))> _
    Public Class SecretEditorPart
        Inherits EditorPart
        Public UseCustom As New CheckBox()
        Public TTTextBox As New TextBox()

        Protected Overrides Sub CreateChildControls()
            MyBase.CreateChildControls()
            Controls.Add(UseCustom)
            Dim lApply As New Literal()
            lApply.Text = "Apply custom ToolTip<br />"
            Controls.Add(lApply)
            Controls.Add(TTTextBox)
        End Sub

        Public Overrides Function ApplyChanges() As Boolean
            EnsureChildControls()
            Try
                WebPartToEdit.ToolTip = TTTextBox.Text
            Catch
                Return False
            End Try
            Return True
        End Function

        Public Overrides Sub SyncChanges()
            ' Abstract method not implemented for this example
            Return
        End Sub
    End Class

    Public Class SecretEditorPartDesigner
        Inherits EditorPartDesigner
        Public Overrides Sub Initialize(component As IComponent)
            ' Validate the associated control
            If Not (TypeOf component Is SecretEditorPart) Then
                Dim msg As String = "The associated control must be of type 'SecretEditorPart'"
                Throw New ArgumentException(msg)
            End If
            MyBase.Initialize(component)
        End Sub

        Public Overrides Function GetDesignTimeHtml() As String
            ' Access the view control.
            Dim sep As SecretEditorPart = DirectCast(ViewControl, SecretEditorPart)

            ' Hide the textbox.
            sep.TTTextBox.Visible = False

            ' Now generate the base rendering.
            Dim designTimeHtml As String = MyBase.GetDesignTimeHtml()

            ' Insert some text.
            Dim segment As String = "</div>"
            designTimeHtml = designTimeHtml.Replace(segment, "The textbox is now hidden." & segment)

            ' Return the modified rendering.
            Return designTimeHtml
        End Function
    End Class
End Namespace

若要讓自定義控件轉譯,頁面必須具有 WebPartManager 控件、 EditorZone 控件 ZoneTemplate 所在的 ,以及 WebPartZone 包含要作用之自定義 EditorPart 控件的控件,如下列程式代碼範例所示。

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register TagPrefix="ccl" Namespace="Samples.AspNet.CS.Controls" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>EditorPartDesigner Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:WebPartManager ID="WebPartManager1" runat="server">
        </asp:WebPartManager><br />
        <asp:EditorZone ID="EditorZone1" runat="server" Enabled="true" >
            <ZoneTemplate>
                <ccl:SecretEditorPart ID="SEPart1" runat="server" />
            </ZoneTemplate>
        </asp:EditorZone>
        <asp:WebPartZone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <asp:Button ID="Button1" runat="server" Height="24px" Text="Button" />
            </ZoneTemplate>
        </asp:WebPartZone><br />
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true"  CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register TagPrefix="ccl" Namespace="Samples.AspNet.VB.Controls" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>EditorPartDesigner Sample</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:WebPartManager ID="WebPartManager1" runat="server">
        </asp:WebPartManager><br />
        <asp:EditorZone ID="EditorZone1" runat="server" Enabled="true" >
            <ZoneTemplate>
                <ccl:SecretEditorPart ID="SEPart1" runat="server" />
            </ZoneTemplate>
        </asp:EditorZone>
        <asp:WebPartZone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <asp:Button ID="Button1" runat="server" Height="24px" Text="Button" />
            </ZoneTemplate>
        </asp:WebPartZone><br />
    </div>
    </form>
</body>
</html>

EditorPart若要在運行時間使用 ,必須在頁面上啟用編輯模式。 下列程式代碼範例示範如何使用程式代碼後置檔案來執行此動作。

using System;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        {
            // Make the 'Edit' verb available so the EditorZone can render
            WebPartManager mgr = WebPartManager.GetCurrentWebPartManager(Page);
            mgr.DisplayMode = mgr.SupportedDisplayModes["Edit"];
        }
    }
}
Imports System.Web.UI.WebControls.WebParts

Public Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As EventArgs)
        If True Then
            ' Make the 'Edit' verb available so the EditorZone can render
            Dim mgr As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page)
            mgr.DisplayMode = mgr.SupportedDisplayModes("Edit")
        End If
    End Sub
End Class

備註

EditorPartDesigner 是基類的 PartDesigner 公用實作,用於 EditorPart 在設計時間轉譯控件。 它會將區域資訊從關聯的控件加入設計檢視中,但不會變更父控件的功能。

如同其他控制項設計工具,您可以藉由繼承 和 EditorPartDesignerGetDesignTimeHtml寫 方法,來變更自定義EditorPart控件的設計時間轉譯。 如果您想要覆寫 CreateViewControl 方法,請務必包含基底實作,以便保留區域資訊。

建構函式

EditorPartDesigner()

初始化 EditorPartDesigner 類別的新執行個體。

屬性

ActionLists

取得控制項設計工具的動作清單集合。

(繼承來源 ControlDesigner)
AllowResize

取得值,指出是否可在設計階段環境中調整控制項的大小。

(繼承來源 ControlDesigner)
AssociatedComponents

取得元件集合,該集合與設計工具管理的元件相關聯。

(繼承來源 ComponentDesigner)
AutoFormats

針對設計階段的相關聯控制項,取得要在 [自動格式化] 對話方塊中顯示之預先定義的自動格式化配置集合。

(繼承來源 ControlDesigner)
Behavior
已淘汰.

取得或設定與設計工具相關聯的 DHTML 行為。

(繼承來源 HtmlControlDesigner)
Component

取得這個設計工具正在設計的元件。

(繼承來源 ComponentDesigner)
DataBindings

取得目前控制項的資料繫結 (Data Binding) 集合。

(繼承來源 HtmlControlDesigner)
DataBindingsEnabled

取得值,指出關聯控制項的包含區域是否支援資料繫結。

(繼承來源 ControlDesigner)
DesignerState

取得物件,用於在設計階段保存關聯控制項的資料。

(繼承來源 ControlDesigner)
DesignTimeElement
已淘汰.

取得設計階段物件,表示與設計介面上 HtmlControlDesigner 物件相關聯的控制項。

(繼承來源 HtmlControlDesigner)
DesignTimeElementView
已淘汰.

取得控制項設計工具的檢視控制項物件。

(繼承來源 ControlDesigner)
DesignTimeHtmlRequiresLoadComplete
已淘汰.

取得值,指出設計主應用程式在呼叫 GetDesignTimeHtml 方法之前是否必須完成載入。

(繼承來源 ControlDesigner)
Expressions

在設計階段取得目前控制項的運算式繫結。

(繼承來源 HtmlControlDesigner)
HidePropertiesInTemplateMode

取得值,指示當控制項處於樣板模式時,關聯控制項的屬性是否會隱藏。

(繼承來源 ControlDesigner)
ID

取得或設定控制項的 ID 字串。

(繼承來源 ControlDesigner)
InheritanceAttribute

取得屬性 (Attribute),表示相關元件的繼承 (Inheritance) 型別。

(繼承來源 ComponentDesigner)
Inherited

取得值,表示是否要繼承這個元件。

(繼承來源 ComponentDesigner)
InTemplateMode

取得值,指出控制項在設計主應用程式中處於樣板檢視模式還是編輯模式。 InTemplateMode 屬性是唯讀的。

(繼承來源 ControlDesigner)
IsDirty
已淘汰.

取得或設定值,指出 Web 伺服器控制項是否已標記為變更。

(繼承來源 ControlDesigner)
ParentComponent

取得這個設計工具的父元件。

(繼承來源 ComponentDesigner)
ReadOnly
已淘汰.

取得或設定值,指出控制項屬性於設計階段是否為唯讀。

(繼承來源 ControlDesigner)
RootDesigner

為包含關聯控制項的 Web Form 網頁,取得控制項設計工具。

(繼承來源 ControlDesigner)
SetTextualDefaultProperty

提供 EditorPart 控制項的設計階段支援。

(繼承來源 ComponentDesigner)
ShadowProperties

取得覆寫使用者設定的屬性值集合。

(繼承來源 ComponentDesigner)
ShouldCodeSerialize
已淘汰.

取得或設定值,指出是否應該於序列化 (Serialization) 期間,在程式碼後置 (Code-Behind) 檔案中為目前設計文件建立控制項的欄位宣告。

(繼承來源 HtmlControlDesigner)
Tag

取得物件,表示關聯控制項的 HTML 標記項目。

(繼承來源 ControlDesigner)
TemplateGroups

取得範本群組集合,各範本群組包含一個或多個範本定義。

(繼承來源 ControlDesigner)
UsePreviewControl

取得值,表示這個設計工具是否應該使用暫存複本來產生設計階段標記,而不是使用與設計工具關聯的實際控制項。

(繼承來源 PartDesigner)
Verbs

取得與設計工具相關元件所支援的設計階段動詞命令 (Verb)。

(繼承來源 ComponentDesigner)
ViewControl

取得或設定 Web 伺服器控制項,可用於預覽設計階段的 HTML 標記。

(繼承來源 ControlDesigner)
ViewControlCreated

取得或設定值,指出是否已建立 View 控制項以在設計介面上顯示。

(繼承來源 ControlDesigner)
Visible

取得值,這個值表示控制項在設計階段是否為可見的。

(繼承來源 ControlDesigner)

方法

CreateChildControls()

建立這個 CompositeControl 控制項的子控制項。

(繼承來源 CompositeControlDesigner)
CreateErrorDesignTimeHtml(String)

建立 HTML 標記,以在設計階段顯示指定的錯誤訊息。

(繼承來源 ControlDesigner)
CreateErrorDesignTimeHtml(String, Exception)

建立 HTML 標記,以在設計階段顯示指定的例外狀況錯誤訊息。

(繼承來源 ControlDesigner)
CreatePlaceHolderDesignTimeHtml()

提供簡單矩形預留位置表示,顯示控制項的型別和 ID。

(繼承來源 ControlDesigner)
CreatePlaceHolderDesignTimeHtml(String)

提供簡單矩形預留位置表示,顯示控制項的型別和 ID,以及其他指定的指示或資訊。

(繼承來源 ControlDesigner)
CreateViewControl()

建立相關聯 EditorPart 控制項的複本,以在設計階段呈現。

Dispose()

釋放 ComponentDesigner 所使用的所有資源。

(繼承來源 ComponentDesigner)
Dispose(Boolean)

釋放 HtmlControlDesigner 物件所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。

(繼承來源 HtmlControlDesigner)
DoDefaultAction()

在元件上預設事件的原始程式碼檔案中建立方法簽章,並將使用者的游標巡覽至該位置。

(繼承來源 ComponentDesigner)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetBounds()

擷取矩形的座標,表示設計介面上所顯示控制項的界限。

(繼承來源 ControlDesigner)
GetDesignTimeHtml()

驗證控制項是否位於型別為 EditorZoneBase 的區域,然後取得用於在設計階段表示控制項的標記。

GetDesignTimeHtml(DesignerRegionCollection)

擷取要顯示控制項的 HTML 標記,並將目前控制項設計工具區域填入集合中。

(繼承來源 ControlDesigner)
GetEditableDesignerRegionContent(EditableDesignerRegion)

針對關聯控制項設計階段檢視的可編輯區域,傳回內容。

(繼承來源 ControlDesigner)
GetEmptyDesignTimeHtml()

擷取 HTML 標記,以在設計階段呈現在執行階段沒有視覺表示的 Web 伺服器控制項。

(繼承來源 ControlDesigner)
GetErrorDesignTimeHtml(Exception)

擷取可提供所指定例外狀況之相關資訊的 HTML 標記。

(繼承來源 ControlDesigner)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetPersistenceContent()

在設計階段擷取控制項的永久性內部 HTML 標記。

(繼承來源 ControlDesigner)
GetPersistInnerHtml()
已淘汰.

擷取控制項的永久性內部 HTML 標記。

(繼承來源 ControlDesigner)
GetService(Type)

嘗試從設計工具元件的設計模式站台擷取指定的服務類型。

(繼承來源 ComponentDesigner)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetViewRendering()

擷取物件,其中包含關聯控制項之內容和區域的設計階段標記。

(繼承來源 ControlDesigner)
Initialize(IComponent)

將設計工具繫結至相關聯的 EditorPart 控制項。

InitializeExistingComponent(IDictionary)

重新初始化現有的元件。

(繼承來源 ComponentDesigner)
InitializeNewComponent(IDictionary)

初始化新建立的元件。

(繼承來源 ComponentDesigner)
InitializeNonDefault()
已淘汰.
已淘汰.

初始化已初始化為預設值以外設定的匯入元件設定。

(繼承來源 ComponentDesigner)
Invalidate()

使設計介面上所顯示之控制項的整個區域失效,並傳送信號給控制項設計工具,要求重繪控制項。

(繼承來源 ControlDesigner)
Invalidate(Rectangle)

使設計介面上所顯示之控制項的指定區域失效,並傳送信號給控制項設計工具,要求重繪控制項。

(繼承來源 ControlDesigner)
InvokeGetInheritanceAttribute(ComponentDesigner)

取得指定 InheritanceAttributeComponentDesigner

(繼承來源 ComponentDesigner)
IsPropertyBound(String)
已淘汰.

擷取值,指出關聯控制項的指定屬性是否已資料繫結。

(繼承來源 ControlDesigner)
Localize(IDesignTimeResourceWriter)

使用提供的資源寫入器將關聯控制項的可當地語系化屬性保存到設計主應用程式的資源中。

(繼承來源 ControlDesigner)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnAutoFormatApplied(DesignerAutoFormat)

將預先定義的自動格式化配置套用至關聯的控制項時呼叫。

(繼承來源 ControlDesigner)
OnBehaviorAttached()

當控制項設計工具附加至 Behavior 物件時呼叫。

(繼承來源 ControlDesigner)
OnBehaviorDetaching()
已淘汰.

當行為解除與項目的關聯時呼叫。

(繼承來源 HtmlControlDesigner)
OnBindingsCollectionChanged(String)
已淘汰.

當資料繫結集合變更時呼叫。

(繼承來源 ControlDesigner)
OnClick(DesignerRegionMouseEventArgs)

當使用者在設計階段按一下關聯控制項時,由設計主應用程式呼叫。

(繼承來源 ControlDesigner)
OnComponentChanged(Object, ComponentChangedEventArgs)

當關聯的控制項變更時呼叫。

(繼承來源 ControlDesigner)
OnComponentChanging(Object, ComponentChangingEventArgs)

表示將處理關聯控制項之 ComponentChanging 事件的方法。

(繼承來源 ControlDesigner)
OnControlResize()
已淘汰.

於設計階段在設計主應用程式中重新調整關聯之 Web 伺服器控制項的大小時呼叫。

(繼承來源 ControlDesigner)
OnPaint(PaintEventArgs)

CustomPaint 值為 true 的情況下,控制項設計工具在設計介面中繪製關聯的控制項便會呼叫。

(繼承來源 ControlDesigner)
OnSetComponentDefaults()
已淘汰.
已淘汰.

設定元件的預設屬性。

(繼承來源 ComponentDesigner)
OnSetParent()

提供當關聯的控制項附加至父控制項時,執行其他處理的方法。

(繼承來源 HtmlControlDesigner)
PostFilterAttributes(IDictionary)

允許設計工具變更或移除它經由 TypeDescriptor 公開的屬性集中的項目。

(繼承來源 ComponentDesigner)
PostFilterEvents(IDictionary)

允許設計工具變更或移除它經由 TypeDescriptor 公開的事件集中的項目。

(繼承來源 ComponentDesigner)
PostFilterProperties(IDictionary)

允許設計工具變更或移除它經由 TypeDescriptor 公開的屬性集中的項目。

(繼承來源 ComponentDesigner)
PreFilterAttributes(IDictionary)

允許設計工具加入至它經由 TypeDescriptor 公開的屬性集。

(繼承來源 ComponentDesigner)
PreFilterEvents(IDictionary)

設定在設計階段公開 (Expose) 的針對元件之 TypeDescriptor 物件的事件清單。

(繼承來源 HtmlControlDesigner)
PreFilterProperties(IDictionary)

在設計階段將屬性加入至設計主應用程式中的 [屬性] 方格或從其中移除屬性,或提供新的設計階段屬性,這些屬性可能會對應至關聯控制項的屬性。

(繼承來源 ControlDesigner)
RaiseComponentChanged(MemberDescriptor, Object, Object)

告知 IComponentChangeService 這個元件已經變更。

(繼承來源 ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

告知 IComponentChangeService 這個元件正要變更。

(繼承來源 ComponentDesigner)
RaiseResizeEvent()
已淘汰.

引發 OnControlResize() 事件。

(繼承來源 ControlDesigner)
RegisterClone(Object, Object)

在複製 (Clone) 的控制項中註冊內部資料。

(繼承來源 ControlDesigner)
SetEditableDesignerRegionContent(EditableDesignerRegion, String)

在設計階段指定控制項之可編輯區域的內容。

(繼承來源 ControlDesigner)
SetRegionContent(EditableDesignerRegion, String)

指定控制項之設計階段檢視的可編輯區域內容。

(繼承來源 ControlDesigner)
SetViewFlags(ViewFlags, Boolean)

指派指定的位元 (Bitwise) ViewFlags 列舉型別給指定的旗標值。

(繼承來源 ControlDesigner)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
UpdateDesignTimeHtml()

藉由呼叫 GetDesignTimeHtml 方法,為關聯的 Web 伺服器控制項重新整理設計階段 HTML 標記。

(繼承來源 ControlDesigner)

明確介面實作

IDesignerFilter.PostFilterAttributes(IDictionary)

如需這個成員的描述,請參閱 PostFilterAttributes(IDictionary) 方法。

(繼承來源 ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

如需這個成員的描述,請參閱 PostFilterEvents(IDictionary) 方法。

(繼承來源 ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

如需這個成員的描述,請參閱 PostFilterProperties(IDictionary) 方法。

(繼承來源 ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

如需這個成員的描述,請參閱 PreFilterAttributes(IDictionary) 方法。

(繼承來源 ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

如需這個成員的描述,請參閱 PreFilterEvents(IDictionary) 方法。

(繼承來源 ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

如需這個成員的描述,請參閱 PreFilterProperties(IDictionary) 方法。

(繼承來源 ComponentDesigner)
ITreeDesigner.Children

如需這個成員的描述,請參閱 Children 屬性。

(繼承來源 ComponentDesigner)
ITreeDesigner.Parent

如需這個成員的描述,請參閱 Parent 屬性。

(繼承來源 ComponentDesigner)

適用於

另請參閱