Partager via


DesignerAutoFormatCollection Classe

Définition

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.

S’applique à

Voir aussi