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 с реализацией пользовательского конструктора элементов управления. Объявление класса конструктора элементов управления помечается атрибутом, равным SupportsPreviewControl true. Конструктор элементов управления переопределяет метод и заключает 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 атрибут к классу конструктора элементов управления, чтобы указать тип элемента управления предварительного просмотра, поддерживаемый конструктором элементов управления. Этот атрибут используется для изменения элемента управления предварительного просмотра для отрисовки во время разработки, не затрагивая фактический сохраненный экземпляр связанного элемента управления.

Как правило, указывается SupportsPreviewControlAttribute при объявлении пользовательского класса конструктора, производного от ControlDesigner класса. Значение свойства атрибута SupportsPreviewControl SupportsPreviewControlAttribute определяет поведение для UsePreviewControl и ViewControl членов базового ControlDesigner класса.

SupportsPreviewControl Задайте для свойства значение, указывающееtrue, что конструктор использует временную копию связанного элемента управления для создания HTML-кода во время разработки. Изменения во временном элементе управления не сохраняются.

SupportsPreviewControl Задайте свойство, чтобы false указать, что конструктор возвращает экземпляр элемента управления, в частности Component свойство, из ViewControl метода. Изменения в объекте элемента управления сохраняются.

Например, CalendarDesigner класс помечается набором SupportsPreviewControlAttribute true. Конструктор использует элемент управления предварительного просмотра с задачей автоматического форматирования стилей, что позволяет пользователю просматривать различные стили автоформата, которые можно применить к календарю. Когда пользователь выбирает различные стили автоформата в пользовательском интерфейсе, выбранная схема стиля применяется к элементу управления предварительного просмотра. Применение нового стиля к элементу управления предварительного просмотра не изменяет схему, применяемую к экземпляру Calendar элемента управления в конструкторе.

Если значение SupportsPreviewControlAttribute не указано в объявлении конструктора элементов управления, ControlDesigner поведение эквивалентно указанию SupportsPreviewControl как false.

Примечание

Классы конструктора, производные ControlDesigner от класса, могут переопределять UsePreviewControl элементы и ViewControl элементы и игнорировать SupportsPreviewControlAttribute атрибут. Сведения о ожидаемом поведении ViewControl и UsePreviewControlсм. в справочной документации по классу производного конструктора элементов управления.

Общие сведения об использовании атрибутов см. в разделе "Обзор атрибутов " и "Атрибуты". Дополнительные сведения об атрибутах времени разработки см. в разделе "Атрибуты" и 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)

Применяется к

См. также раздел