Specifies the category in which the property or event will be displayed in a visual designer.
For a list of all members of this type, see CategoryAttribute Members.
System.Object
System.Attribute
System.ComponentModel.CategoryAttribute
[Visual Basic] <AttributeUsage(AttributeTargets.All)> Public Class CategoryAttribute Inherits Attribute [C#] [AttributeUsage(AttributeTargets.All)] public class CategoryAttribute : Attribute [C++] [AttributeUsage(AttributeTargets::All)] public __gc class CategoryAttribute : public Attribute [JScript] public AttributeUsage(AttributeTargets.All) class CategoryAttribute extends Attribute
Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.
A visual designer can use categories to organize members into groups of similar behavior. A category can be created for any name.
This CategoryAttribute class provides the Category property to get the name of the category. Category also provides transparent localization of category names.
Notes to Inheritors: If you use category names other than the predefined names, and you want to localize your category names, you must override the GetLocalizedString method. Additionally, you can override the Category property to provide your own logic for localization.
The CategoryAttribute class defines the following common categories:
| Category | Description |
|---|---|
| Action | Properties regarding available actions. |
| Appearance | Properties affecting how an entity appears. |
| Behavior | Properties affecting how an entity acts. |
| Data | Properties concerning data. |
| Default | Properties that do not have a category are classified as belonging to the default category. |
| Design | Properties that are available only at design time. |
| DragDrop | Properties about drag-and-drop operations. |
| Focus | Properties pertaining to focus. |
| Format | Properties that affect format. |
| Key | Properties affecting the keyboard. |
| Layout | Properties concerning layout. |
| Mouse | Properties pertaining to the mouse. |
| WindowStyle | Properties affecting the window style of top-level forms. |
For more information, see
[Visual Basic, C#, C++] The following example creates the MyImage property. The property has two attributes: a DescriptionAttribute and a CategoryAttribute.
[Visual Basic] <Description("The image associated with the control"), _ Category("Appearance")> _ Public Property MyImage() As Image Get ' Insert code here. Return image1 End Get Set ' Insert code here. End Set End Property [C#] [Description("The image associated with the control"),Category("Appearance")] public Image MyImage { get { // Insert code here. return image1; } set { // Insert code here. } } [C++] [Description(S"The image associated with the control"),Category(S"Appearance")] __property System::Drawing::Image* get_MyImage() { // Insert code here. return m_Image1; } __property void set_MyImage( System::Drawing::Image* ) { // Insert code here. }
[Visual Basic, C#, C++] The next example gets the category for MyImage. First, the code gets a PropertyDescriptorCollection with all the properties for the object. Next, the code indexes into the PropertyDescriptorCollection to get MyImage. Then it returns the attributes for this property and saves them in the variable attributes.
[Visual Basic, C#, C++] The example then prints the category by retrieving CategoryAttribute from the AttributeCollection, and writing it to the console screen.
[Visual Basic] ' Gets the attributes for the property. Dim attributes As AttributeCollection = _ TypeDescriptor.GetProperties(Me)("MyImage").Attributes ' Prints the description by retrieving the CategoryAttribute. ' from the AttributeCollection. Dim myAttribute As CategoryAttribute = _ CType(attributes(GetType(CategoryAttribute)), CategoryAttribute) Console.WriteLine(myAttribute.Category) [C#] // Gets the attributes for the property. AttributeCollection attributes = TypeDescriptor.GetProperties(this)["MyImage"].Attributes; // Prints the description by retrieving the CategoryAttribute. // from the AttributeCollection. CategoryAttribute myAttribute = (CategoryAttribute)attributes[typeof(CategoryAttribute)]; Console.WriteLine(myAttribute.Category); [C++] // Gets the attributes for the property. AttributeCollection* attributes = TypeDescriptor::GetProperties(this)->Item[S"MyImage"]->Attributes; // Prints the description by retrieving the CategoryAttribute. // from the AttributeCollection. CategoryAttribute* myAttribute = static_cast<CategoryAttribute*>(attributes->Item[__typeof(CategoryAttribute)]); Console::WriteLine(myAttribute->Category);
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Namespace: System.ComponentModel
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
Assembly: System (in System.dll)
CategoryAttribute Members | System.ComponentModel Namespace | Attribute | PropertyDescriptor | EventDescriptor