Auf Englisch lesen

Teilen über


DesignerAutoFormatCollection Klasse

Definition

Stellt eine Auflistung von DesignerAutoFormat-Objekten in einem Steuerelement-Designer dar. Diese Klasse kann nicht vererbt werden.

C#
public sealed class DesignerAutoFormatCollection : System.Collections.IList
Vererbung
DesignerAutoFormatCollection
Implementiert

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die AutoFormats -Eigenschaft in einem benutzerdefinierten Steuerelement-Designer implementiert wird. Der Designer für abgeleitete Steuerelemente implementiert die AutoFormats -Eigenschaft, indem drei Instanzen eines benutzerdefinierten automatischen Formats hinzugefügt werden, die von der DesignerAutoFormat -Klasse abgeleitet werden.

C#
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;
                    }
                }
            }
        }
    }
}

Hinweise

Die ControlDesigner -Klasse und jede abgeleitete Klasse definieren die AutoFormats -Eigenschaft als - DesignerAutoFormatCollection Objekt. Steuerelemententwickler können die AutoFormats -Eigenschaft in einem abgeleiteten Steuerelement-Designer überschreiben, benutzerdefinierte automatische Formatierungsstile hinzufügen und die Auflistung der unterstützten Formate an den visuellen Designer zurückgeben.

Die Auflistung wird dynamisch erhöht, wenn Objekte hinzugefügt werden. Indizes in dieser Auflistung sind nullbasiert. Verwenden Sie die Count -Eigenschaft, um zu bestimmen, wie viele automatische Formatvorlagenformate in der Auflistung enthalten sind.

Verwenden Sie außerdem die DesignerAutoFormatCollection Methoden und Eigenschaften, um die folgenden Funktionen bereitzustellen:

  • Die Add Methode zum Hinzufügen eines einzelnen Formats zur Auflistung.

  • Die Insert Methode zum Hinzufügen eines Formats an einem bestimmten Index innerhalb der Auflistung.

  • Die Remove Methode zum Entfernen eines Formats.

  • Die RemoveAt Methode zum Entfernen des Formats an einem bestimmten Index.

  • Die Contains Methode, um zu bestimmen, ob ein bestimmtes Format bereits in der Auflistung enthalten ist.

  • Die IndexOf Methode zum Abrufen des Indexes eines Formats innerhalb der Auflistung.

  • Die Item[] Eigenschaft, die das Format für einen bestimmten Index mithilfe der Arraynotation abrufen oder festlegen soll.

  • Die Clear -Methode zum Entfernen aller Formate aus der Auflistung.

  • Die Count -Eigenschaft, um die Anzahl der Formate in der Auflistung zu bestimmen.

  • Die IndexOf Methode zum Abrufen der Position eines Formats innerhalb der Auflistung.

Konstruktoren

DesignerAutoFormatCollection()

Initialisiert eine neue Instanz der DesignerAutoFormatCollection-Klasse.

Eigenschaften

Count

Ruft die Anzahl der DesignerAutoFormat-Objekte in der Auflistung ab.

Item[Int32]

Ruft ein DesignerAutoFormat-Objekt am angegebenen Index in der Auflistung ab oder legt dieses fest.

PreviewSize

Ruft die maximalen äußeren Abmessungen des Steuerelements ab, mit denen dieses zur Laufzeit angezeigt wird.

SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf das DesignerAutoFormatCollection-Objekt synchronisiert werden kann.

Methoden

Add(DesignerAutoFormat)

Fügt das angegebene DesignerAutoFormat-Objekt am Ende der Auflistung hinzu.

Clear()

Entfernt alle Formate aus der Auflistung.

Contains(DesignerAutoFormat)

Bestimmt, ob das angegebene Format in der Auflistung enthalten ist.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(DesignerAutoFormat)

Gibt den Index des angegebenen DesignerAutoFormat-Objekts in der Auflistung zurück.

Insert(Int32, DesignerAutoFormat)

Fügt ein DesignerAutoFormat-Objekt am angegebenen Index in die Auflistung ein.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Remove(DesignerAutoFormat)

Entfernt das angegebene DesignerAutoFormat-Objekt aus der Auflistung.

RemoveAt(Int32)

Entfernt das DesignerAutoFormat-Objekt am angegebenen Index der Auflistung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente der Auflistung in ein Array-Objekt, beginnend bei einem bestimmten Array-Index, wenn das DesignerAutoFormatCollection-Objekt in eine ICollection-Schnittstelle umgewandelt wird.

ICollection.Count

Ruft die Anzahl von Elementen ab, die in der Auflistung enthalten sind, wenn das DesignerAutoFormatCollection-Objekt in eine ICollection-Schnittstelle umgewandelt wird.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die Auflistung synchronisiert (threadsicher) ist, wenn das DesignerAutoFormatCollection-Objekt in eine ICollection-Schnittstelle umgewandelt wird.

IEnumerable.GetEnumerator()

Gibt eine IEnumerator-Schnittstelle zurück, die die Auflistung durchläuft, wenn das DesignerAutoFormatCollection-Objekt in eine IEnumerable-Schnittstelle umgewandelt wird.

IList.Add(Object)

Fügt der Auflistung ein Element hinzu, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.Contains(Object)

Bestimmt, ob die Auflistung einen bestimmten Wert enthält, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.IndexOf(Object)

Ermittelt den Index eines bestimmten Elements in der Auflistung, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.Insert(Int32, Object)

Fügt ein Element am angegebenen Index in der Auflistung ein, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die Auflistung über eine feste Größe verfügt, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.IsReadOnly

Eine Beschreibung dieser Methode finden Sie unter IsReadOnly.

IList.Item[Int32]

Ruft das Element vom angegebenen Index ab, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus der Auflistung, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

IList.RemoveAt(Int32)

Entfernt das Element am angegebenen Index, wenn das DesignerAutoFormatCollection-Objekt in eine IList-Schnittstelle umgewandelt wird.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für:

Produkt Versionen
.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

Weitere Informationen