DesignerAttribute クラス
コンポーネントに対するデザイン時サービスを実装するために使用するクラスを指定します。
この型のすべてのメンバの一覧については、DesignerAttribute メンバ を参照してください。
System.Object
System.Attribute
System.ComponentModel.DesignerAttribute
<AttributeUsage(AttributeTargets.Class Or _
AttributeTargets.Interface)>
NotInheritable Public Class DesignerAttribute Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Class |
AttributeTargets.Interface)]
public sealed class DesignerAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Class |
AttributeTargets::Interface)]
public __gc __sealed class DesignerAttribute : public Attribute
[JScript]
public
AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)
class DesignerAttribute extends Attribute
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
デザイン時サービスに使用するクラスは、 IDesigner インターフェイスを実装している必要があります。
デザイナの基本型を検索するには、 DesignerBaseTypeName プロパティを使用します。このメンバと関連付けられたデザイナの型名を取得するには、 DesignerTypeName プロパティを使用します。
詳細については、「 属性の概要 」および「 属性を使用したメタデータの拡張 」を参照してください。
使用例
[Visual Basic, C#, C++] MyForm
というクラスを作成する方法を次の例に示します。 MyForm
には、このクラスが DocumentDesigner を使用することを指定する DesignerAttribute と、 Form カテゴリを指定する DesignerCategoryAttribute という 2 つの属性があります。
<Designer("System.Windows.Forms.Design.DocumentDesigner, System.Windows.Forms.Design.DLL", _
GetType(IRootDesigner)), DesignerCategory("Form")> _
Public Class MyForm
Inherits ContainerControl
' Insert code here.
End Class 'MyForm
[C#]
[Designer("System.Windows.Forms.Design.DocumentDesigner, System.Windows.Forms.Design.DLL",
typeof(IRootDesigner)),
DesignerCategory("Form")]
public class MyForm : ContainerControl {
// Insert code here.
}
[C++]
[Designer(S"System.Windows.Forms.Design.DocumentDesigner, System.Windows.Forms.Design.DLL",
__typeof(IRootDesigner)),
DesignerCategory(S"Form")]
__gc class MyForm : public ContainerControl {
// Insert code here.
};
[Visual Basic, C#, C++] MyForm
のインスタンスを作成する例を次に示します。そのクラスの属性を取得し、 DesignerAttribute を抽出してから、デザイナの名前を出力します。
Public Shared Function Main() As Integer
' Creates a new form.
Dim myNewForm As New MyForm()
' Gets the attributes for the collection.
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(myNewForm)
' Prints the name of the designer by retrieving the DesignerAttribute
' from the AttributeCollection.
Dim myAttribute As DesignerAttribute = _
CType(attributes(GetType(DesignerAttribute)), DesignerAttribute)
Console.WriteLine(("The designer for this class is: " & myAttribute.DesignerTypeName))
Return 0
End Function 'Main
[C#]
public static int Main() {
// Creates a new form.
MyForm myNewForm = new MyForm();
// Gets the attributes for the collection.
AttributeCollection attributes = TypeDescriptor.GetAttributes(myNewForm);
/* Prints the name of the designer by retrieving the DesignerAttribute
* from the AttributeCollection. */
DesignerAttribute myAttribute =
(DesignerAttribute)attributes[typeof(DesignerAttribute)];
Console.WriteLine("The designer for this class is: " + myAttribute.DesignerTypeName);
return 0;
}
[C++]
int main() {
// Creates a new form.
MyForm* myNewForm = new MyForm();
// Gets the attributes for the collection.
AttributeCollection* attributes = TypeDescriptor::GetAttributes(myNewForm);
/* Prints the name of the designer by retrieving the DesignerAttribute
* from the AttributeCollection. */
DesignerAttribute* myAttribute =
dynamic_cast<DesignerAttribute*>(attributes->Item[__typeof(DesignerAttribute)]);
Console::WriteLine(S"The designer for this class is: {0}", myAttribute->DesignerTypeName);
return 0;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.ComponentModel
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System (System.dll 内)
参照
DesignerAttribute メンバ | System.ComponentModel 名前空間 | Attribute