次の方法で共有


SupportsPreviewControlAttribute クラス

定義

コントロール デザイナーでデザイン時にコントロールのプレビュー インスタンスが必要かどうかを示します。 このクラスは継承できません。

public ref class SupportsPreviewControlAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class SupportsPreviewControlAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type SupportsPreviewControlAttribute = class
    inherit Attribute
Public NotInheritable Class SupportsPreviewControlAttribute
Inherits Attribute
継承
SupportsPreviewControlAttribute
属性

次のコード例では、コントロール デザイナーに属性をマークする方法を SupportsPreviewControlAttribute 示します。 このコード例では、ASP.NET サーバー コントロールをクラスからLabel派生させ、ASP.NET サーバー コントロールをカスタム コントロール デザイナーの実装に関連付けます。 コントロール デザイナーのクラス宣言は、属性trueSupportsPreviewControl . コントロール デザイナーはメソッドを GetDesignTimeHtml オーバーライドし、コントロールのデザイン時 HTML を斜体タグで囲みます。

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.Reflection;

namespace ControlDesignerSamples.CS
{
    // Define a simple designer associated with a 
    // simple text web control.
    
    // Mark the designer with the SupportsPreviewControlAttribute set
    // to true.  This means the base.UsePreviewControl returns true,
    // and base.ViewControl returns a temporary preview copy of the control.
    [SupportsPreviewControl(true)]
    public class SimpleTextControlDesigner : TextControlDesigner
    {		
        // Override the base GetDesignTimeHtml method to display 
        // the design time text in italics.
        public override string GetDesignTimeHtml()
        {
            string html = String.Empty;
 
            try
            {
                // Initialize the return string to the default
                // design time html of the base TextControlDesigner.
                html = base.GetDesignTimeHtml();

                // Get the ViewControl for the associated control.
                Label ctrl = (Label)ViewControl;

                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "Italic");
                html = base.GetDesignTimeHtml();
            }
            catch (System.Exception e)
            {
               if (String.IsNullOrEmpty(html))
               {
                   html = GetErrorDesignTimeHtml(e);
               }
            }
            
            return html;
        }
    }

    // Derive a simple Web control from Label to render a text string.
    // Associate this control with the SimpleTextControlDesigner.
    [DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"),
    ToolboxData("<{0}:MyLabelControl Runat=\"Server\"><{0}:MyLabelControl>")]
    public class MyLabelControl : Label
    {
        // Use the Label control implementation, but associate
        // the derived class with the custom control designer.
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Imports System.Reflection

Namespace ControlDesignerSamples.VB

    ' Derive a simple Web control from Label to render a text string.
    ' Associate this control with the SimpleTextControlDesigner.
    <DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"), _
    ToolboxData("<{0}:MyLabelControl Runat=""Server""><{0}:MyLabelControl>")> _
    Public Class MyLabelControl
        Inherits Label

        ' Use the Label control implementation, but associate
        ' the derived class with the custom control designer.
    End Class


    ' Mark the designer with the SupportsPreviewControlAttribute set
    ' to true.  This means the base.UsePreviewControl returns true,
    ' and base.ViewControl returns a temporary preview copy of the control.
    <SupportsPreviewControl(True)> _
    Public Class SimpleTextControlDesigner
        Inherits TextControlDesigner

        ' Override the base GetDesignTimeHtml method to display 
        ' the design time text in italics.
        Public Overrides Function GetDesignTimeHtml() As String
            Dim html As String = String.Empty

            Try
                ' Get the ViewControl for the associated control.
                Dim ctrl As Label = CType(ViewControl, Label)

                ' Set the default text, if necessary
                If ctrl.Text.Length = 0 Then
                    ctrl.Text = "Sample Text"
                End If

                ' Set the style to italic
                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "italic")

                ' Let the base class create the HTML markup
                html = MyBase.GetDesignTimeHtml()
            Catch ex As Exception
                If String.IsNullOrEmpty(html) Then
                    ' Display the exception message
                    html = GetErrorDesignTimeHtml(ex)
                End If
            End Try

            Return html
        End Function

    End Class
End Namespace

注釈

SupportsPreviewControlAttributeコントロール デザイナーでサポートされているプレビュー コントロールの種類を示すために、コントロール デザイナー クラスに属性を適用します。 この属性を使用して、関連付けられたコントロールの実際の永続化されたインスタンスに影響を与えずに、デザイン時のレンダリング用のプレビュー コントロールを変更します。

通常は、クラスからControlDesigner派生したカスタム デザイナー クラスを宣言するときに指定SupportsPreviewControlAttributeします。 属性のプロパティSupportsPreviewControlAttributeSupportsPreviewControl値によって、基底ControlDesignerクラスのメンバーとViewControlメンバーUsePreviewControlの動作が決まります。

デザイナーが関連付けられているコントロールの SupportsPreviewControl 一時的なコピーを使用してデザイン時 HTML を生成することを示すプロパティ true を設定します。 一時コントロールに対する変更は保持されません。

デザイナーがSupportsPreviewControlコントロール インスタンス (特にfalseプロパティ) をメソッドから返すようにプロパティをComponentViewControl設定します。 コントロール オブジェクトに対する変更は保持されます。

たとえば、クラスはCalendarDesigner次の設定trueSupportsPreviewControlAttributeマークされます。 デザイナーは、自動スタイル書式設定タスクでプレビュー コントロールを使用します。これにより、ユーザーは予定表に適用できるさまざまなオートフォーマット スタイルをプレビューできます。 ユーザーがユーザー インターフェイスで異なるオートフォーマット スタイルを選択すると、選択したスタイル スキームがプレビュー コントロールに適用されます。 プレビュー コントロールに新しいスタイルを適用しても、デザイナーのコントロールの Calendar インスタンスに適用されるスキームは変更されません。

コントロール デザイナーのSupportsPreviewControlAttribute宣言で指定されていない場合、ControlDesigner動作は as を指定することとSupportsPreviewControlfalse同じです。

注意

クラスから派生したデザイナー クラスはControlDesigner、メンバーとViewControlメンバーをUsePreviewControlオーバーライドし、属性をSupportsPreviewControlAttribute無視できます。 予期される動作ViewControlUsePreviewControlを判断するには、派生コントロール デザイナー クラスのリファレンス ドキュメントを参照してください。

属性の使用に関する一般的な情報については、「 属性の概要 」および 「属性」を参照してください。 デザイン時属性の詳細については、「 属性とDesign-Timeサポート」を参照してください。

コンストラクター

SupportsPreviewControlAttribute(Boolean)

SupportsPreviewControlAttribute クラスの新しいインスタンスを初期化して、SupportsPreviewControl プロパティの初期値を設定します。

フィールド

Default

プレビューの既定値に設定された SupportsPreviewControlAttribute クラスのインスタンスを取得します。 このフィールドは読み取り専用です。

プロパティ

SupportsPreviewControl

コントロール デザイナーでデザイン時に一時的なプレビュー コントロールが必要かどうかを示す値を取得します。

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)

メソッド

Equals(Object)

指定したオブジェクトのプレビュー属性の設定が、SupportsPreviewControlAttribute クラスの現在のインスタンスと同一であるかどうかを判断します。

GetHashCode()

SupportsPreviewControlAttribute クラスのこのインスタンスのハッシュ コードを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

SupportsPreviewControlAttribute クラスの現在のインスタンスがプレビュー属性の既定値に設定されるかどうかを示します。

Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください