ControlBuilderAttribute クラス
アセンブリ: System.Web (system.web.dll 内)

<AttributeUsageAttribute(AttributeTargets.Class)> _ Public NotInheritable Class ControlBuilderAttribute Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class)] public sealed class ControlBuilderAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class)] public ref class ControlBuilderAttribute sealed : public Attribute

この属性は、次のコードに示すように、カスタム コントロールの作成に使用するビルダの Type を指定します。
[ControlBuilderAttribute(typeof(ControlBuilderType))]

次のコード例では、実行時に定義された SelectedIndex 値と Message 値に基づいてメッセージを表示するために使用する、カスタマイズされた選択リストを作成します。実行可能ファイルの作成には、次のコマンド ラインを使用します。
vbc /r:System.dll /r:System.Web.dll /r:System.Drawing.dll /t:library /out:myWebAppPath/Bin/vb_MyControlBuilderAtt.dll ControlBuilderAtt.vb
'File name: controlBuilderAttribute.vb. Imports System Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Collections Namespace CustomControls Public Class MyVB_Item: Inherits Control Private _message As String Public Property Message() As String Get Return _message End Get Set _message = value End Set End Property End Class 'MyVB_Item Public Class VB_CustomParseControlBuilder: Inherits ControlBuilder <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Public Overrides Function GetChildControlType(TagName As String, attributes As IDictionary) As Type If (TagName = "customitem") Then Return GetType(CustomControls.MyVB_Item) End If Return Nothing End Function 'GetChildControlType End Class 'CustomParseControlBuilder <ControlBuilderAttribute(GetType(VB_CustomParseControlBuilder))> Public Class MyVB_CustomParse: Inherits Control Private _items As New ArrayList Private _selectedIndex As Integer = 0 Public Property SelectedIndex() As Integer Get Return _selectedIndex End Get Set _selectedIndex = value End Set End Property <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub AddParsedSubObject(obj As Object) If TypeOf obj Is MyVB_Item Then _items.Add(obj) End If End Sub 'AddParsedSubObject <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub Render(output As HtmlTextWriter) output.Write(("<span style='background-color:aqua; color:red; font:8pt tahoma, verdana;'><b>" + CType(_items(SelectedIndex), MyVB_Item).Message + "</b></span>")) End Sub 'Render End Class 'MyVB_CustomParse End Namespace 'CustomControls
/* File name: controlBuilderAttribute.cs. */ using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; namespace CustomControls { public class MyCS_Item : Control /* Class name: MyCS_Item. * Defines the child control class. */ { private String _message; public String Message { get { return _message; } set { _message = value; } } } public class CustomParseControlBuilder : ControlBuilder /* Class name: CustomParserControlBuilder. * Defines the functions and data to be used in building custom controls. * This class is referenced using the ControlBuilderAttribute class. See class below. */ { [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] public override Type GetChildControlType(String tagName, IDictionary attributes) { if (String.Compare(tagName, "customitem", true) == 0) { return typeof(MyCS_Item); } return null; } } [ ControlBuilderAttribute(typeof(CustomParseControlBuilder)) ] public class MyCS_CustomParse : Control /* Class name: MyCS_CustomParse. * Performs custom parsing of a MyCS_CustomParse control type * child control. * If the child control is of the allowed type, it is added to an * array list. This list is accessed, using the container control attribute * SelectedIndex, to obtain the related child control Message attribute to be displayed. */ { private ArrayList _items = new ArrayList(); private int _selectedIndex = 0; public int SelectedIndex { get { return _selectedIndex; } set { _selectedIndex = value; } } [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override void AddParsedSubObject(Object obj) /* Function name: AddParsedSubObject. * Updates the array list with the allowed child objects. * This function is called during the parsing of the child controls and * after the GetChildControlType function defined in the associated control * builder class. */ { if (obj is MyCS_Item) { _items.Add(obj); } } [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override void Render(HtmlTextWriter output) /* Function name: Render. * Establishes the rules to render the built control. In this case, a message is * rendered that is a function of the parent control SelectedIndex attribute and * the related child Message attribute. */ { if (SelectedIndex < _items.Count) { output.Write("<span style='background-color:aqua; color:red; font:8pt tahoma, verdana;'><b>" + ((MyCS_Item) _items[SelectedIndex]).Message + "</b></span>" ); } } } }
package CustomControls; /* File name: controlBuilderAttribute.jsl. */ import System.*; import System.Web.*; import System.Web.UI.*; import System.Web.UI.WebControls.*; import System.Collections.*; public class MyJSL_Item extends Control { /* Class name: MyJSL_Item. Defines the child control class. */ private String _message; /** @property */ public String get_Message() { return _message; } //get_Message /** @property */ public void set_Message(String value) { _message = value; } //set_Message } //MyJSL_Item public class CustomParseControlBuilder extends ControlBuilder { /* Class name: CustomParserControlBuilder. Defines the functions and data to be used in building custom controls. This class is referenced using the ControlBuilderAttribute class. See class below. */ public Type GetChildControlType(String tagName, IDictionary attributes) { if (String.Compare(tagName, "customitem", true) == 0) { return MyJSL_Item.class.ToType(); } return null; } //GetChildControlType } //CustomParseControlBuilder /** @attribute ControlBuilderAttribute(CustomParseControlBuilder.class) */ public class MyJSL_CustomParse extends Control { /* Class name: MyJSL_CustomParse. Performs custom parsing of a MyJSL_CustomParse control type child control. If the child control is of the allowed type, it is added to an array list. This list is accessed, using the container control attribute SelectedIndex, to obtain the related child control Message attribute to be displayed. */ private ArrayList _items = new ArrayList(); private int _selectedIndex = 0; /** @property */ public int get_SelectedIndex() { return _selectedIndex; } //get_SelectedIndex /** @property */ public void set_SelectedIndex(int value) { _selectedIndex = value; } //set_SelectedIndex protected void AddParsedSubObject(Object obj) { /* Function name: AddParsedSubObject. Updates the array list with the allowed child objects. This function is called during the parsing of the child controls and after the GetChildControlType function defined in the associated control builder class. */ if (obj instanceof MyJSL_Item) { _items.Add(obj); } } //AddParsedSubObject protected void Render(HtmlTextWriter output) { /* Function name: Render. Establishes the rules to render the built control. In this case, a message is rendered that is a function of the parent control SelectedIndex attribute and the related child Message attribute. */ if (get_SelectedIndex() < _items.get_Count()) { output.Write("<span style='background-color:aqua; color:red;" + " font:8pt tahoma, verdana;'><b>" + ((MyJSL_Item)_items.get_Item(get_SelectedIndex())).get_Message() + "</b></span>"); } } //Render } //MyJSL_CustomParse
上記で定義したカスタム コントロールを使用する例を次に示します。特に、この例では、実行時に表示するメッセージを決定する SelectedIndex 値と Message 値が代入されています。Register ディレクティブに示される値には、前のコマンド ラインが反映されます。
<%@ Register TagPrefix="custom" Assembly="myControlBuilderAtt" Namespace="CustomControls" %> <h4>Using ControlBuilderAttribute Class<h4> <form runat="server"> <custom:MyVB_CustomParse SelectedIndex="3" runat=server> <customitem Message="Visual Basic version. Item One selected"/> <customitem Message="Visual Basic version. Item Two selected"/> <customitem Message="Visual Basic version. Item Three selected"/> <customitem Message="Visual Basic version. Item Four selected"/> </custom:MyVB_CustomParse> </form>
<%@ Register TagPrefix="custom" Assembly="myControlBuilderAtt" Namespace="CustomControls" %> <h4>Using ControlBuilderAttribute Class<h4> <form runat="server"> <custom:MyCS_CustomParse SelectedIndex="2" runat=server> <customitem Message="C# version. Item One selected"/> <customitem Message="C# version. Item Two selected"/> <customitem Message="C# version. Item Three selected"/> <customitem Message="C# version. Item Four selected"/> </custom:MyCS_CustomParse> </form>

System.Attribute
System.Web.UI.ControlBuilderAttribute


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ControlBuilderAttribute コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


カスタム コントロール ビルダ クラスの前に次の属性定義を記述することで、コントロール ビルダの型をカスタム コントロールに関連付けることができます。
[ControlBuilderAttribute(typeof(controlbuildertype))]

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ControlBuilderAttribute フィールド

名前 | 説明 | |
---|---|---|
![]() | Default | 新しい ControlBuilderAttribute オブジェクトを指定します。既定では、新しいオブジェクトは null に設定されます。このフィールドは読み取り専用です。 |

ControlBuilderAttribute プロパティ

名前 | 説明 | |
---|---|---|
![]() | BuilderType | 属性に関連付けられたコントロールの Type を取得します。このプロパティは読み取り専用です。 |
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。 ( Attribute から継承されます。) |

ControlBuilderAttribute メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 オーバーライドされます。 |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 ( Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 ( Attribute から継承されます。) |
![]() | GetHashCode | オーバーライドされます。 ControlBuilderAttribute オブジェクトのハッシュ コードを返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | IsDefaultAttribute | オーバーライドされます。 現在のコントロール ビルダが既定値かどうかを確認します。 |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 ( Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 ( Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

ControlBuilderAttribute メンバ
ASP.NET パーサー内でカスタム コントロールを作成する ControlBuilder クラスを指定します。このクラスは継承できません。
ControlBuilderAttribute データ型で公開されるメンバを以下の表に示します。

名前 | 説明 | |
---|---|---|
![]() | ControlBuilderAttribute | カスタム コントロールのコントロール ビルダを指定します。 |

名前 | 説明 | |
---|---|---|
![]() | Default | 新しい ControlBuilderAttribute オブジェクトを指定します。既定では、新しいオブジェクトは null に設定されます。このフィールドは読み取り専用です。 |

名前 | 説明 | |
---|---|---|
![]() | BuilderType | 属性に関連付けられたコントロールの Type を取得します。このプロパティは読み取り専用です。 |
![]() | TypeId | 派生クラスに実装されている場合は、この Attribute の一意の識別子を取得します。(Attribute から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 オーバーライドされます。 |
![]() | GetCustomAttribute | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用された指定した型のカスタム属性を取得します。 (Attribute から継承されます。) |
![]() | GetCustomAttributes | オーバーロードされます。 アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されたカスタム属性の配列を取得します。 (Attribute から継承されます。) |
![]() | GetHashCode | オーバーライドされます。 ControlBuilderAttribute オブジェクトのハッシュ コードを返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | IsDefaultAttribute | オーバーライドされます。 現在のコントロール ビルダが既定値かどうかを確認します。 |
![]() | IsDefined | オーバーロードされます。 指定した型のカスタム属性が、アセンブリ、モジュール、型のメンバ、またはメソッド パラメータに適用されているかどうかを判断します。 (Attribute から継承されます。) |
![]() | Match | 派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (Attribute から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

Weblioに収録されているすべての辞書からControlBuilderAttributeを検索する場合は、下記のリンクをクリックしてください。

- ControlBuilderAttributeのページへのリンク