DesignerAutoFormatCollection クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コントロール デザイナー内の DesignerAutoFormat オブジェクトのコレクションを表します。 このクラスは継承できません。
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
- 継承
-
DesignerAutoFormatCollection
- 実装
例
次のコード例では、カスタム コントロール デザイナーで プロパティを AutoFormats 実装する方法を示します。 派生コントロール デザイナーは、 クラスから派生したカスタム自動形式の 3 つのインスタンスを追加することで、 プロパティをDesignerAutoFormat実装AutoFormatsします。
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
注釈
クラスと派生クラスは ControlDesigner 、 プロパティを AutoFormats オブジェクトとして DesignerAutoFormatCollection 定義します。 コントロール開発者は、派生コントロール デザイナーで プロパティをオーバーライド AutoFormats し、カスタムの自動書式設定スタイルを追加して、サポートされている書式のコレクションをビジュアル デザイナーに返すことができます。
コレクションは、オブジェクトが追加されると動的に増加します。 このコレクション内のインデックスは 0 から始まります。 コレクション内の Count 自動スタイル形式の数を確認するには、 プロパティを使用します。
さらに、 メソッドとプロパティを DesignerAutoFormatCollection 使用して、次の機能を提供します。
Addコレクションに 1 つの形式を追加するメソッド。
コレクション内の Insert 特定のインデックスに書式を追加するメソッド。
Remove形式を削除するメソッド。
特定の RemoveAt インデックスの書式を削除するメソッド。
特定の Contains 形式がコレクション内に既にあるかどうかを判断するメソッド。
IndexOfコレクション内の形式のインデックスを取得するメソッド。
Item[]配列表記を使用して、特定のインデックスで書式を取得または設定するプロパティ。
Clearコレクションからすべての書式を削除するメソッド。
コレクション内の Count 書式の数を決定する プロパティ。
IndexOfコレクション内の書式の位置を取得するメソッド。
コンストラクター
DesignerAutoFormatCollection() |
DesignerAutoFormatCollection クラスの新しいインスタンスを初期化します。 |
プロパティ
Count |
コレクション内の DesignerAutoFormat オブジェクト数を取得します。 |
Item[Int32] |
コレクション内の指定したインデックス位置にある DesignerAutoFormat オブジェクトを取得または設定します。 |
PreviewSize |
実行時に表示されるコントロールの最大外部寸法を取得します。 |
SyncRoot |
DesignerAutoFormatCollection オブジェクトへのアクセスを同期するために使用できるオブジェクトを取得します。 |
メソッド
Add(DesignerAutoFormat) |
指定した DesignerAutoFormat オブジェクトをコレクションの末尾に追加します。 |
Clear() |
コレクションからすべての書式を削除します。 |
Contains(DesignerAutoFormat) |
指定した書式がコレクション内に存在するかどうかを確認します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IndexOf(DesignerAutoFormat) |
コレクション内の指定した DesignerAutoFormat オブジェクトのインデックスを返します。 |
Insert(Int32, DesignerAutoFormat) |
コレクション内の指定したインデックス位置に、DesignerAutoFormat オブジェクトを挿入します。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Remove(DesignerAutoFormat) |
指定した DesignerAutoFormat オブジェクトをコレクションから削除します。 |
RemoveAt(Int32) |
コレクション内の指定したインデックスにある DesignerAutoFormat オブジェクトを削除します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
ICollection.CopyTo(Array, Int32) |
Array オブジェクトが Array インターフェイスにキャストされた場合に、コレクションの要素を DesignerAutoFormatCollection オブジェクトにコピーします。コピーは、ICollection の特定のインデックスから開始されます。 |
ICollection.Count |
DesignerAutoFormatCollection オブジェクトが ICollection インターフェイスにキャストされた場合に、コレクションに格納されている要素数を取得します。 |
ICollection.IsSynchronized |
DesignerAutoFormatCollection オブジェクトが ICollection インターフェイスにキャストされた場合に、コレクションへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。 |
IEnumerable.GetEnumerator() |
IEnumerator オブジェクトが DesignerAutoFormatCollection インターフェイスにキャストされた場合にコレクションを反復処理する IEnumerable インターフェイスを返します。 |
IList.Add(Object) |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、コレクションに項目を追加します。 |
IList.Contains(Object) |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、コレクションに特定の値が格納されているかどうかを確認します。 |
IList.IndexOf(Object) |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、コレクション内の特定の項目のインデックスを確認します。 |
IList.Insert(Int32, Object) |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、コレクション内の指定したインデックス位置に項目を挿入します。 |
IList.IsFixedSize |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、コレクションのサイズが固定であるかどうかを示す値を取得します。 |
IList.IsReadOnly |
このメソッドの説明については、「IsReadOnly」を参照してください。 |
IList.Item[Int32] |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、指定したインデックス位置の要素を取得します。 |
IList.Remove(Object) |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、コレクション内内で最初に見つかった特定のオブジェクトを削除します。 |
IList.RemoveAt(Int32) |
DesignerAutoFormatCollection オブジェクトが IList インターフェイスにキャストされた場合に、指定したインデックス位置の項目を削除します。 |
拡張メソッド
Cast<TResult>(IEnumerable) |
IEnumerable の要素を、指定した型にキャストします。 |
OfType<TResult>(IEnumerable) |
指定された型に基づいて IEnumerable の要素をフィルター処理します。 |
AsParallel(IEnumerable) |
クエリの並列化を有効にします。 |
AsQueryable(IEnumerable) |
IEnumerable を IQueryable に変換します。 |
適用対象
こちらもご覧ください
.NET