PropertyTabAttribute Class
Identifies the property tab or tabs to display for the specified class or classes.
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | PropertyTabAttribute() | Initializes a new instance of the PropertyTabAttribute class. |
![]() | PropertyTabAttribute(String) | Initializes a new instance of the PropertyTabAttribute class using the specified tab class name. |
![]() | PropertyTabAttribute(String, PropertyTabScope) | Initializes a new instance of the PropertyTabAttribute class using the specified tab class name and tab scope. |
![]() | PropertyTabAttribute(Type) | Initializes a new instance of the PropertyTabAttribute class using the specified type of tab. |
![]() | PropertyTabAttribute(Type, PropertyTabScope) | Initializes a new instance of the PropertyTabAttribute class using the specified type of tab and tab scope. |
| Name | Description | |
|---|---|---|
![]() | TabClasses | Gets the types of tabs that this attribute uses. |
![]() | TabClassNames | Gets the names of the tab classes that this attribute uses. |
![]() | TabScopes | Gets an array of tab scopes of each tab of this PropertyTabAttribute. |
![]() | TypeId |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Returns a value indicating whether this instance is equal to a specified object.(Overrides Attribute.Equals(Object).) |
![]() | Equals(PropertyTabAttribute) | Returns a value indicating whether this instance is equal to a specified attribute. |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Gets the hash code for this object.(Overrides Attribute.GetHashCode().) |
![]() | GetType() | |
![]() | InitializeArrays(String[], PropertyTabScope[]) | Initializes the attribute using the specified names of tab classes and array of tab scopes. |
![]() | InitializeArrays(Type[], PropertyTabScope[]) | Initializes the attribute using the specified names of tab classes and array of tab scopes. |
![]() | IsDefaultAttribute() | When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.) |
![]() | Match(Object) | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.) |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfoCount(UInt32) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.) |
![]() ![]() | _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object.(Inherited from Attribute.) |
The PropertyTabAttribute lets you add a new property page to a PropertyGrid control. The PropertyTabAttribute can add additional property tabs to expose property information other than a component's default set of properties.
The following code example demonstrates how to use the PropertyTabAttribute to specify a property tab. The code example defines a component that exposes the properties of another selected component by type.
using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.IO; using System.Reflection; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Windows.Forms; using System.Windows.Forms.Design; namespace TypeCategoryTabExample { // This component adds a TypeCategoryTab to the property browser // that is available for any components in the current design mode document. [PropertyTabAttribute(typeof(TypeCategoryTab), PropertyTabScope.Document)] public class TypeCategoryTabComponent : System.ComponentModel.Component { public TypeCategoryTabComponent() { } } // A TypeCategoryTab property tab lists properties by the // category of the type of each property. [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] public class TypeCategoryTab : PropertyTab { [BrowsableAttribute(true)] // This string contains a Base-64 encoded and serialized example property tab image. private string img = "AAEAAAD/////AQAAAAAAAAAMAgAAAFRTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA9gAAAAJCTfYAAAAAAAAANgAAACgAAAAIAAAACAAAAAEAGAAAAAAAAAAAAMQOAADEDgAAAAAAAAAAAAD///////////////////////////////////9ZgABZgADzPz/zPz/zPz9AgP//////////gAD/gAD/AAD/AAD/AACKyub///////+AAACAAAAAAP8AAP8AAP9AgP////////9ZgABZgABz13hz13hz13hAgP//////////gAD/gACA/wCA/wCA/wAA//////////+AAACAAAAAAP8AAP8AAP9AgP////////////////////////////////////8L"; public TypeCategoryTab() { } // Returns the properties of the specified component extended with // a CategoryAttribute reflecting the name of the type of the property. public override System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes) { PropertyDescriptorCollection props; if( attributes == null ) props = TypeDescriptor.GetProperties(component); else props = TypeDescriptor.GetProperties(component, attributes); PropertyDescriptor[] propArray = new PropertyDescriptor[props.Count]; for(int i=0; i<props.Count; i++) { // Create a new PropertyDescriptor from the old one, with // a CategoryAttribute matching the name of the type. propArray[i] = TypeDescriptor.CreateProperty(props[i].ComponentType, props[i], new CategoryAttribute(props[i].PropertyType.Name)); } return new PropertyDescriptorCollection( propArray ); } public override System.ComponentModel.PropertyDescriptorCollection GetProperties(object component) { return this.GetProperties(component, null); } // Provides the name for the property tab. public override string TabName { get { return "Properties by Type"; } } // Provides an image for the property tab. public override System.Drawing.Bitmap Bitmap { get { Bitmap bmp = new Bitmap(DeserializeFromBase64Text(img)); return bmp; } } // This method can be used to retrieve an Image from a block of Base64-encoded text. private Image DeserializeFromBase64Text(string text) { Image img = null; byte[] memBytes = Convert.FromBase64String(text); IFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(memBytes); img = (Image)formatter.Deserialize(stream); stream.Close(); return img; } } }
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





