SupportsPreviewControlAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Indique si un Concepteur de contrôles requiert une instance d'aperçu du contrôle au moment du design. Cette classe ne peut pas être héritée.
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
- Héritage
- Attributs
Exemples
L’exemple de code suivant montre comment marquer un concepteur de contrôles avec l’attribut SupportsPreviewControlAttribute . L’exemple de code dérive un contrôle de serveur ASP.NET de la Label classe et associe le contrôle de serveur ASP.NET à une implémentation de concepteur de contrôles personnalisé. La déclaration de classe du concepteur de contrôles est marquée avec l’attribut SupportsPreviewControl
défini sur true
. Le concepteur de contrôles remplace la GetDesignTimeHtml méthode et place le code HTML au moment du design pour le contrôle dans les balises italiques.
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
Remarques
Appliquez l’attribut SupportsPreviewControlAttribute à une classe de concepteur de contrôles pour indiquer le type de contrôle d’aperçu pris en charge par le concepteur de contrôles. Utilisez cet attribut pour modifier un contrôle d’aperçu pour le rendu au moment du design sans affecter l’instance persistante réelle du contrôle associé.
En règle générale, vous spécifiez le SupportsPreviewControlAttribute moment où vous déclarez une classe de concepteur personnalisée dérivée de la ControlDesigner classe. La valeur de la propriété de l’attribut SupportsPreviewControl SupportsPreviewControlAttribute détermine le comportement pour les membres et ViewControl les UsePreviewControl membres de la classe de baseControlDesigner.
Définissez la SupportsPreviewControl propriété pour true
indiquer que le concepteur utilise une copie temporaire du contrôle associé pour générer le code HTML au moment de la conception. Les modifications apportées au contrôle temporaire ne sont pas conservées.
Définissez la SupportsPreviewControl propriété pour false
indiquer que le concepteur retourne l’instance de contrôle, en particulier la Component propriété, à partir de la ViewControl méthode. Les modifications apportées à l’objet de contrôle sont conservées.
Par exemple, la CalendarDesigner classe est marquée avec la SupportsPreviewControlAttribute valeur définie true
sur . Le concepteur utilise le contrôle d’aperçu avec la tâche de mise en forme automatique du style, ce qui permet à l’utilisateur d’afficher un aperçu des différents styles de mise en forme automatique qui peuvent être appliqués au calendrier. Lorsque l’utilisateur sélectionne différents styles de mise en forme automatique dans l’interface utilisateur, le schéma de style sélectionné est appliqué au contrôle d’aperçu. L’application d’un nouveau style au contrôle d’aperçu ne modifie pas le schéma appliqué à l’instance Calendar du contrôle dans le concepteur.
Si le SupportsPreviewControlAttribute paramètre n’est pas spécifié dans la déclaration du concepteur de contrôles, le ControlDesigner comportement équivaut à spécifier le SupportsPreviewControl paramètre comme false
.
Notes
Les classes de concepteur dérivées de la ControlDesigner classe peuvent remplacer les UsePreviewControl membres et ViewControl ignorer l’attribut SupportsPreviewControlAttribute . Pour déterminer le comportement attendu pour ViewControl et UsePreviewControl, consultez la documentation de référence de la classe de concepteur de contrôles dérivée.
Pour plus d’informations sur l’utilisation d’attributs, consultez Vue d’ensemble des attributs et Attributs. Pour plus d’informations sur les attributs au moment de la conception, consultez Attributs et prise en charge des Design-Time.
Constructeurs
SupportsPreviewControlAttribute(Boolean) |
Initialise une nouvelle instance de la classe SupportsPreviewControlAttribute et définit la valeur initiale de la propriété SupportsPreviewControl. |
Champs
Default |
Obtient une instance de la classe SupportsPreviewControlAttribute recevant la valeur d'aperçu par défaut. Ce champ est en lecture seule. |
Propriétés
SupportsPreviewControl |
Obtient une valeur indiquant si le Concepteur de contrôles requiert un contrôle d'aperçu temporaire au moment du design. |
TypeId |
Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute. (Hérité de Attribute) |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié représente le même paramétrage d'attribut d'aperçu que l'instance actuelle de la classe SupportsPreviewControlAttribute. |
GetHashCode() |
Retourne le code de hachage de cette instance de la classe SupportsPreviewControlAttribute. |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IsDefaultAttribute() |
Indique si l'instance actuelle de la classe SupportsPreviewControlAttribute a la valeur d'attribut d'aperçu par défaut. |
Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute) |