PropertyTabAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Identifica o(s) separador(e) de propriedades a mostrar para a classe ou classes especificadas.
public ref class PropertyTabAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public class PropertyTabAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type PropertyTabAttribute = class
inherit Attribute
Public Class PropertyTabAttribute
Inherits Attribute
- Herança
- Atributos
Exemplos
O exemplo de código seguinte demonstra como usar o PropertyTabAttribute para especificar uma aba de propriedade. O exemplo de código define um componente que expõe as propriedades de outro componente selecionado por tipo.
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
#using <System.dll>
using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Drawing;
using namespace System::IO;
using namespace System::Reflection;
using namespace System::Runtime::Serialization;
using namespace System::Runtime::Serialization::Formatters::Binary;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
using namespace System::Security::Permissions;
namespace TypeCategoryTabExample
{
ref class TypeCategoryTab;
// forward declaration.
// This component adds a TypeCategoryTab to the propery browser
// that is available for any components in the current design mode document.
[PropertyTabAttribute(TypeCategoryTabExample::TypeCategoryTab::typeid,PropertyTabScope::Document)]
public ref class TypeCategoryTabComponent: public System::ComponentModel::Component
{
public:
TypeCategoryTabComponent(){}
};
// A TypeCategoryTab property tab lists properties by the
// category of the type of each property.
public ref class TypeCategoryTab: public PropertyTab
{
private:
// This String^ contains a Base-64 encoded and serialized example property tab image.
[BrowsableAttribute(true)]
String^ img;
public:
TypeCategoryTab()
{
img = "AAEAAAD/////AQAAAAAAAAAMAgAAAFRTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA9gAAAAJCTfYAAAAAAAAANgAAACgAAAAIAAAACAAAAAEAGAAAAAAAAAAAAMQOAADEDgAAAAAAAAAAAAD///////////////////////////////////9ZgABZgADzPz/zPz/zPz9AgP//////////gAD/gAD/AAD/AAD/AACKyub///////+AAACAAAAAAP8AAP8AAP9AgP////////9ZgABZgABz13hz13hz13hAgP//////////gAD/gACA/wCA/wCA/wAA//////////+AAACAAAAAAP8AAP8AAP9AgP////////////////////////////////////8L";
}
// Returns the properties of the specified component extended with
// a CategoryAttribute reflecting the name of the type of the property.
[ReflectionPermission(SecurityAction::Demand, Flags=ReflectionPermissionFlag::MemberAccess)]
virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( Object^ component, array<System::Attribute^>^attributes ) override
{
PropertyDescriptorCollection^ props;
if ( attributes == nullptr )
props = TypeDescriptor::GetProperties( component );
else
props = TypeDescriptor::GetProperties( component, attributes );
array<PropertyDescriptor^>^propArray = gcnew array<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.
array<Attribute^>^temp0 = {gcnew CategoryAttribute( props[ i ]->PropertyType->Name )};
propArray[ i ] = TypeDescriptor::CreateProperty( props[ i ]->ComponentType, props[ i ], temp0 );
}
return gcnew PropertyDescriptorCollection( propArray );
}
virtual System::ComponentModel::PropertyDescriptorCollection^ GetProperties( Object^ component ) override
{
return this->GetProperties( component, nullptr );
}
property String^ TabName
{
// Provides the name for the property tab.
virtual String^ get() override
{
return "Properties by Type";
}
}
};
}
using System.ComponentModel;
using System.Drawing;
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.
[PropertyTab(typeof(TypeCategoryTab), PropertyTabScope.Document)]
public class TypeCategoryTabComponent : Component
{
public TypeCategoryTabComponent()
{
}
}
// A TypeCategoryTab property tab lists properties by the
// category of the type of each property.
public class TypeCategoryTab : PropertyTab
{
public TypeCategoryTab()
{
}
// Returns the properties of the specified component extended with
// a CategoryAttribute reflecting the name of the type of the property.
public override PropertyDescriptorCollection GetProperties(object component, System.Attribute[] attributes)
{
PropertyDescriptorCollection props = attributes == null ? TypeDescriptor.GetProperties(component) : 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 PropertyDescriptorCollection GetProperties(object component) => GetProperties(component, null);
// Provides the name for the property tab.
public override string TabName => "Properties by Type";
// Provides an image for the property tab.
public override Bitmap Bitmap => new("myproperty.bmp", true);
}
Observações
Permite-te PropertyTabAttribute adicionar uma nova página de propriedades a um PropertyGrid controlo. Podem PropertyTabAttribute adicionar separadores de propriedades adicionais para expor informações de propriedades diferentes do conjunto padrão de propriedades de um componente.
Construtores
| Name | Description |
|---|---|
| PropertyTabAttribute() |
Inicializa uma nova instância da PropertyTabAttribute classe. |
| PropertyTabAttribute(String, PropertyTabScope) |
Inicializa uma nova instância da PropertyTabAttribute classe usando o nome da classe tab especificado e o escopo da tabulação. |
| PropertyTabAttribute(String) |
Inicializa uma nova instância da PropertyTabAttribute classe usando o nome especificado da classe tab. |
| PropertyTabAttribute(Type, PropertyTabScope) |
Inicializa uma nova instância da PropertyTabAttribute classe usando o tipo especificado de escopo de tabulação e tabulação. |
| PropertyTabAttribute(Type) |
Inicializa uma nova instância da PropertyTabAttribute classe usando o tipo de separador especificado. |
Propriedades
| Name | Description |
|---|---|
| TabClasses |
Obtém os tipos de abas que este atributo utiliza. |
| TabClassNames |
Obtém os nomes das classes de tabulação que este atributo utiliza. |
| TabScopes |
Obtém um array de escopos de tabulação de cada separador deste PropertyTabAttribute. |
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. |
| Equals(PropertyTabAttribute) |
Devolve um valor que indica se esta instância é igual a um atributo especificado. |
| GetHashCode() |
Obtém o código hash deste objeto. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| InitializeArrays(String[], PropertyTabScope[]) |
Inicializa o atributo usando os nomes especificados das classes de tabulação e o array de escopos de tabulação. |
| InitializeArrays(Type[], PropertyTabScope[]) |
Inicializa o atributo usando os nomes especificados das classes de tabulação e o array de escopos de tabulação. |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |