DesignerAutoFormatCollection 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.
Représente une collection d’objets DesignerAutoFormat dans un concepteur de contrôles. Cette classe ne peut pas être héritée.
public ref class DesignerAutoFormatCollection sealed : System::Collections::IList
public sealed class DesignerAutoFormatCollection : System.Collections.IList
type DesignerAutoFormatCollection = class
interface IList
interface ICollection
interface IEnumerable
Public NotInheritable Class DesignerAutoFormatCollection
Implements IList
- Héritage
-
DesignerAutoFormatCollection
- Implémente
Exemples
L’exemple de code suivant montre comment implémenter la AutoFormats propriété dans un concepteur de contrôles personnalisé. Le concepteur de contrôles dérivés implémente la AutoFormats propriété en ajoutant trois instances d’un format automatique personnalisé qui sont dérivées de la DesignerAutoFormat classe .
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
namespace CustomControls.Design.CS
{
// A custom Label control whose contents can be indented
[Designer(typeof(IndentLabelDesigner)),
ToolboxData("<{0}:IndentLabel Runat=\"server\"></{0}:IndentLabel>")]
public class IndentLabel : Label
{
private int _indent = 0;
// Property to indent all text within the label
[Category("Appearance"), DefaultValue(0),
PersistenceMode(PersistenceMode.Attribute)]
public int Indent
{
get { return _indent; }
set
{
_indent = value;
// Get the number of pixels to indent
int ind = value * 8;
// Add the indent style to the control
if (ind > 0)
this.Style.Add(HtmlTextWriterStyle.MarginLeft, ind.ToString() + "px");
else
this.Style.Remove(HtmlTextWriterStyle.MarginLeft);
}
}
}
// A design-time ControlDesigner for the IndentLabel control
[SupportsPreviewControl(true)]
public class IndentLabelDesigner : LabelDesigner
{
private DesignerAutoFormatCollection _autoFormats = null;
// The collection of AutoFormat objects for the IndentLabel object
public override DesignerAutoFormatCollection AutoFormats
{
get
{
if (_autoFormats == null)
{
// Create the collection
_autoFormats = new DesignerAutoFormatCollection();
// Create and add each AutoFormat object
_autoFormats.Add(new IndentLabelAutoFormat("MyClassic"));
_autoFormats.Add(new IndentLabelAutoFormat("MyBright"));
_autoFormats.Add(new IndentLabelAutoFormat("Default"));
}
return _autoFormats;
}
}
// An AutoFormat object for the IndentLabel control
private class IndentLabelAutoFormat : DesignerAutoFormat
{
public IndentLabelAutoFormat(string name) : base(name)
{ }
// Applies styles based on the Name of the AutoFormat
public override void Apply(Control inLabel)
{
if (inLabel is IndentLabel)
{
IndentLabel ctl = (IndentLabel)inLabel;
// Apply formatting according to the Name
if (this.Name == "MyClassic")
{
// For MyClassic, apply style elements directly to the control
ctl.ForeColor = Color.Gray;
ctl.BackColor = Color.LightGray;
ctl.Font.Size = FontUnit.XSmall;
ctl.Font.Name = "Verdana,Geneva,Sans-Serif";
}
else if (this.Name == "MyBright")
{
// For MyBright, apply style elements to the Style property
this.Style.ForeColor = Color.Maroon;
this.Style.BackColor = Color.Yellow;
this.Style.Font.Size = FontUnit.Medium;
// Merge the AutoFormat style with the control's style
ctl.MergeStyle(this.Style);
}
else
{
// For the Default format, apply style elements to the control
ctl.ForeColor = Color.Black;
ctl.BackColor = Color.Empty;
ctl.Font.Size = FontUnit.XSmall;
}
}
}
}
}
}
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Namespace CustomControls.Design
' A custom Label control whose contents can be indented
<Designer(GetType(IndentLabelDesigner)), _
ToolboxData("<{0}:IndentLabel Runat=""server""></{0}:IndentLabel>")> _
Public Class IndentLabel
Inherits System.Web.UI.WebControls.Label
Dim _indent As Integer = 0
<Category("Appearance"), DefaultValue(0), _
PersistenceMode(PersistenceMode.Attribute)> _
Property Indent() As Integer
Get
Return _indent
End Get
Set(ByVal Value As Integer)
_indent = Value
' Get the number of pixels to indent
Dim ind As Integer = _indent * 8
' Add the indent style to the control
If ind > 0 Then
Me.Style.Add(HtmlTextWriterStyle.MarginLeft, ind.ToString() & "px")
Else
Me.Style.Remove(HtmlTextWriterStyle.MarginLeft)
End If
End Set
End Property
End Class
' A design-time ControlDesigner for the IndentLabel control
Public Class IndentLabelDesigner
Inherits LabelDesigner
Private _autoFormats As DesignerAutoFormatCollection = Nothing
' The collection of AutoFormat objects for the IndentLabel object
Public Overrides ReadOnly Property AutoFormats() As DesignerAutoFormatCollection
Get
If _autoFormats Is Nothing Then
' Create the collection
_autoFormats = New DesignerAutoFormatCollection()
' Create and add each AutoFormat object
_autoFormats.Add(New IndentLabelAutoFormat("MyClassic"))
_autoFormats.Add(New IndentLabelAutoFormat("MyBright"))
_autoFormats.Add(New IndentLabelAutoFormat("Default"))
End If
Return _autoFormats
End Get
End Property
' An AutoFormat object for the IndentLabel control
Public Class IndentLabelAutoFormat
Inherits DesignerAutoFormat
Public Sub New(ByVal name As String)
MyBase.New(name)
End Sub
' Applies styles based on the Name of the AutoFormat
Public Overrides Sub Apply(ByVal inLabel As Control)
If TypeOf inLabel Is IndentLabel Then
Dim ctl As IndentLabel = CType(inLabel, IndentLabel)
' Apply formatting according to the Name
If Me.Name.Equals("MyClassic") Then
' For MyClassic, apply style elements directly to the control
ctl.ForeColor = Color.Gray
ctl.BackColor = Color.LightGray
ctl.Font.Size = FontUnit.XSmall
ctl.Font.Name = "Verdana,Geneva,Sans-Serif"
ElseIf Me.Name.Equals("MyBright") Then
' For MyBright, apply style elements to the Style object
Me.Style.ForeColor = Color.Maroon
Me.Style.BackColor = Color.Yellow
Me.Style.Font.Size = FontUnit.Medium
' Merge the AutoFormat style with the control's style
ctl.MergeStyle(Me.Style)
Else
' For the Default format, apply style elements to the control
ctl.ForeColor = Color.Black
ctl.BackColor = Color.Empty
ctl.Font.Size = FontUnit.XSmall
End If
End If
End Sub
End Class
End Class
End Namespace
Remarques
La ControlDesigner classe et toute classe dérivée définissent la AutoFormats propriété en tant qu’objet DesignerAutoFormatCollection . Les développeurs de contrôles peuvent remplacer la AutoFormats propriété dans un concepteur de contrôles dérivé, ajouter des styles de mise en forme automatique personnalisés et retourner la collection des formats pris en charge au concepteur visuel.
La collection augmente dynamiquement à mesure que des objets sont ajoutés. Les index de cette collection sont de base zéro. Utilisez la Count propriété pour déterminer le nombre de formats de style automatiques dans la collection.
En outre, utilisez les DesignerAutoFormatCollection méthodes et les propriétés pour fournir les fonctionnalités suivantes :
Méthode Add permettant d’ajouter un format unique à la collection.
Méthode Insert permettant d’ajouter un format à un index particulier dans la collection.
Méthode Remove permettant de supprimer un format.
Méthode RemoveAt permettant de supprimer le format à un index particulier.
Méthode Contains permettant de déterminer si un format particulier figure déjà dans la collection.
Méthode IndexOf permettant de récupérer l’index d’un format dans la collection.
Propriété Item[] permettant d’obtenir ou de définir le format à un index particulier, à l’aide de la notation matricielle.
Méthode Clear permettant de supprimer tous les formats de la collection.
Propriété Count permettant de déterminer le nombre de formats dans la collection.
Méthode IndexOf permettant d’obtenir la position d’un format dans la collection.
Constructeurs
DesignerAutoFormatCollection() |
Initialise une nouvelle instance de la classe DesignerAutoFormatCollection. |
Propriétés
Count |
Obtient le nombre d'objets DesignerAutoFormat dans la collection. |
Item[Int32] |
Obtient ou définit un objet DesignerAutoFormat dans la collection à l'index spécifié. |
PreviewSize |
Obtient les dimensions externes maximales du contrôle tel qu'il apparaîtra au moment de l'exécution. |
SyncRoot |
Obtient un objet qui peut être utilisé pour synchroniser l’accès à l’objet DesignerAutoFormatCollection. |
Méthodes
Add(DesignerAutoFormat) |
Ajoute l'objet DesignerAutoFormat spécifié à la fin de la collection. |
Clear() |
Supprime tous les formats de la collection. |
Contains(DesignerAutoFormat) |
Détermine si le format spécifié est contenu dans la collection. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IndexOf(DesignerAutoFormat) |
Retourne l'index de l'objet DesignerAutoFormat spécifié dans la collection. |
Insert(Int32, DesignerAutoFormat) |
Insère un objet DesignerAutoFormat dans la collection à l'index spécifié. |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
Remove(DesignerAutoFormat) |
Supprime l'objet DesignerAutoFormat spécifié de la collection. |
RemoveAt(Int32) |
Supprime l'objet DesignerAutoFormat situé à l'index spécifié dans la collection. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
ICollection.CopyTo(Array, Int32) |
Copie les éléments de la collection dans un objet Array, en démarrant à un index Array particulier lorsque l'objet DesignerAutoFormatCollection est casté en une interface ICollection. |
ICollection.Count |
Obtient le nombre d'éléments contenus dans la collection lorsque l'objet DesignerAutoFormatCollection est casté en une interface ICollection. |
ICollection.IsSynchronized |
Obtient une valeur qui indique si l'accès à la collection est synchronisé (thread-safe) lorsque l'objet DesignerAutoFormatCollection est casté en une interface ICollection. |
IEnumerable.GetEnumerator() |
Retourne une interface IEnumerator qui itère au sein de la collection lorsque l'objet DesignerAutoFormatCollection est casté en une interface IEnumerable. |
IList.Add(Object) |
Ajoute un élément à la collection lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.Contains(Object) |
Détermine si la collection contient une valeur spécifique lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.IndexOf(Object) |
Détermine l'index d'un élément spécifique dans la collection lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.Insert(Int32, Object) |
Insère un élément dans la collection à l'index spécifié lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.IsFixedSize |
Obtient une valeur qui indique si la collection a une taille fixe lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.IsReadOnly |
Pour une description de cette méthode, consultez IsReadOnly. |
IList.Item[Int32] |
Obtient l'élément à l'index spécifié lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.Remove(Object) |
Supprime la première occurrence d'un objet spécifique de la collection lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
IList.RemoveAt(Int32) |
Supprime l'élément à l'index spécifié lorsque l'objet DesignerAutoFormatCollection est casté en une interface IList. |
Méthodes d’extension
Cast<TResult>(IEnumerable) |
Effectue un cast des éléments d'un IEnumerable vers le type spécifié. |
OfType<TResult>(IEnumerable) |
Filtre les éléments d'un IEnumerable en fonction du type spécifié. |
AsParallel(IEnumerable) |
Active la parallélisation d'une requête. |
AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |