DesignerAutoFormatCollection Classe

Definizione

Rappresenta una raccolta di oggetti DesignerAutoFormat all'interno di una finestra di progettazione controlli. La classe non può essere ereditata.

public sealed class DesignerAutoFormatCollection : System.Collections.IList
Ereditarietà
DesignerAutoFormatCollection
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come implementare la AutoFormats proprietà in una finestra di progettazione controlli personalizzata. Progettazione controlli derivati implementa la AutoFormats proprietà aggiungendo tre istanze di un formato automatico personalizzato derivato dalla 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;
                    }
                }
            }
        }
    }
}

Commenti

La ControlDesigner classe e qualsiasi classe derivata definisce la AutoFormats proprietà come DesignerAutoFormatCollection oggetto . Gli sviluppatori di controlli possono eseguire l'override della AutoFormats proprietà in una finestra di progettazione controlli derivata, aggiungere stili di formattazione automatica personalizzati e restituire la raccolta di formati supportati alla finestra di progettazione visiva.

La raccolta aumenta dinamicamente man mano che vengono aggiunti oggetti. Gli indici in questa raccolta sono in base zero. Utilizzare la Count proprietà per determinare il numero di formati di stile automatici presenti nell'insieme.

Inoltre, usare i DesignerAutoFormatCollection metodi e le proprietà per fornire le funzionalità seguenti:

  • Metodo Add per aggiungere un singolo formato all'insieme.

  • Metodo Insert per aggiungere un formato in corrispondenza di un particolare indice all'interno dell'insieme.

  • Metodo Remove per rimuovere un formato.

  • Metodo RemoveAt per rimuovere il formato in corrispondenza di un indice specifico.

  • Metodo Contains per determinare se un formato specifico è già presente nell'insieme.

  • Metodo IndexOf per recuperare l'indice di un formato all'interno dell'insieme.

  • Proprietà Item[] da ottenere o impostare il formato in corrispondenza di un indice specifico, utilizzando la notazione della matrice.

  • Metodo Clear per rimuovere tutti i formati dall'insieme.

  • Proprietà Count per determinare il numero di formati nell'insieme.

  • Metodo IndexOf per ottenere la posizione di un formato all'interno dell'insieme.

Costruttori

DesignerAutoFormatCollection()

Inizializza una nuova istanza della classe DesignerAutoFormatCollection.

Proprietà

Count

Ottiene il numero di oggetti DesignerAutoFormat contenuti nell'insieme.

Item[Int32]

Ottiene o imposta un oggetto DesignerAutoFormat nella raccolta in corrispondenza dell'indice specificato.

PreviewSize

Ottiene le dimensioni esterne massime del controllo, come verrebbe visualizzato in fase di esecuzione.

SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto DesignerAutoFormatCollection.

Metodi

Add(DesignerAutoFormat)

Aggiunge l'oggetto DesignerAutoFormat specificato alla fine dell'insieme.

Clear()

Rimuove tutti i formati dalla raccolta.

Contains(DesignerAutoFormat)

Determina se il formato specificato è contenuto nella raccolta.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(DesignerAutoFormat)

Restituisce l'indice dell'oggetto DesignerAutoFormat specificato all'interno della raccolta.

Insert(Int32, DesignerAutoFormat)

Inserisce un oggetto DesignerAutoFormat nell'insieme, in corrispondenza dell'indice specificato.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Remove(DesignerAutoFormat)

Rimuove l'oggetto DesignerAutoFormat specificato dalla raccolta.

RemoveAt(Int32)

Rimuove l'oggetto DesignerAutoFormat in corrispondenza dell'indice specificato all'interno della raccolta.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia gli elementi dell'insieme in un oggetto Array, a partire da un indice Array particolare quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia ICollection.

ICollection.Count

Ottiene il numero di elementi contenuti nell'insieme quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia ICollection.

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso all'insieme è sincronizzato (thread-safe) quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia ICollection.

IEnumerable.GetEnumerator()

Restituisce un'interfaccia IEnumerator che consente di scorrere l'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IEnumerable.

IList.Add(Object)

Aggiunge un elemento all'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

IList.Contains(Object)

Determina se l'insieme contiene un valore specifico se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

IList.IndexOf(Object)

Determina l'indice di un elemento specifico nell'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

IList.Insert(Int32, Object)

Inserisce un elemento nell'insieme in corrispondenza dell'indice specificato se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

IList.IsFixedSize

Ottiene un valore che indica se l'insieme è di dimensioni fisse quando si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

IList.IsReadOnly

Per una descrizione di questo metodo, vedere IsReadOnly.

IList.Item[Int32]

Ottiene l'elemento in corrispondenza dell'indice specificato quando si esegue il cast dell'oggetto DesignerAutoFormatCollection in un'interfaccia IList.

IList.Remove(Object)

Rimuove la prima occorrenza di un oggetto specifico dall'insieme se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

IList.RemoveAt(Int32)

Rimuove l'elemento in corrispondenza dell'indice specificato se si esegue il cast dell'oggetto DesignerAutoFormatCollection su un'interfaccia IList.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a

Prodotto Versioni
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Vedi anche