DesignerAutoFormatCollection, classe
Assembly : System.Design (dans system.design.dll)
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; } } } } } }
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.