Ce sujet n'a pas encore été évalué - Évaluez ce sujet

DesignerAutoFormatCollection, classe

Représente une collection d'objets DesignerAutoFormat dans un Concepteur de contrôles. Cette classe ne peut pas être héritée.

Espace de noms: System.Web.UI.Design
Assembly : System.Design (dans system.design.dll)

public sealed class DesignerAutoFormatCollection : IList, ICollection, IEnumerable
public final class DesignerAutoFormatCollection implements IList, ICollection, 
	IEnumerable
public final class DesignerAutoFormatCollection implements IList, ICollection, 
	IEnumerable
Non applicable.

La classe ControlDesigner et toute classe dérivée définissent la propriété AutoFormats en tant qu'objet DesignerAutoFormatCollection. Les développeurs de contrôles peuvent substituer la propriété AutoFormats dans un Concepteur de contrôles dérivés, 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 au fur et à mesure que des objets sont ajoutés. Les index de cette collection sont des index de base zéro. Utilisez la propriété Count pour déterminer le nombre de formats de style automatique dans la collection.

En outre, utilisez les propriétés et les méthodes DesignerAutoFormatCollection pour fournir la fonctionnalité suivante :

  • La méthode Add pour ajouter un format unique à la collection.

  • La méthode Insert pour ajouter un format à un index particulier dans la collection.

  • La méthode Remove pour supprimer un format.

  • La méthode RemoveAt pour supprimer le format à un index particulier.

  • La méthode Contains pour déterminer si un format particulier se trouve déjà dans la collection.

  • La méthode IndexOf pour récupérer l'index d'un format dans la collection.

  • La propriété Item pour obtenir ou définir le format à un index particulier, à l'aide de la notation de tableau.

  • La méthode Clear pour supprimer tous les formats de la collection.

  • La propriété Count pour déterminer le nombre de formats dans la collection.

  • La méthode IndexOf pour obtenir la position d'un format dans la collection.

L'exemple de code suivant montre comment implémenter la propriété AutoFormats dans un Concepteur de contrôles personnalisés. Le Concepteur de contrôles dérivés implémente la propriété AutoFormats en ajoutant trois instances d'un format automatique personnalisé dérivées de la classe DesignerAutoFormat.

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

System.Object
  System.Web.UI.Design.DesignerAutoFormatCollection
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.