PropertyTab Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Basisklasse für Eigenschaftenregisterkarten bereit.
public ref class PropertyTab abstract : System::ComponentModel::IExtenderProvider
public abstract class PropertyTab : System.ComponentModel.IExtenderProvider
type PropertyTab = class
interface IExtenderProvider
Public MustInherit Class PropertyTab
Implements IExtenderProvider
- Vererbung
-
PropertyTab
- Abgeleitet
- Implementiert
Beispiele
Im folgenden Codebeispiel wird ein Beispiel PropertyTab bereitgestellt, in dem alle Eigenschaften einer Komponente aufgelistet werden, die nach Typnamen angeordnet sind.
#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);
}
Hinweise
Die klasse PropertyTab stellt das Verhalten der Basisklasse für eine Eigenschaftenregisterkarte bereit. Eigenschaftenregisterkarten werden auf der Symbolleiste des steuerelements PropertyGrid des Eigenschaftenfenster angezeigt, und eine Komponente kann unterschiedliche Ansichten seiner Eigenschaften oder anderer Daten anzeigen.
Benutzercode erstellt in der Regel keine Instanz einer PropertyTab direkten Instanz. Ein Steuerelement, das den Typ der Eigenschaftenregisterkarten oder Eigenschaftenregister angibt, PropertyTabAttribute die für eine Komponente angezeigt werden sollen, kann den Eigenschaften oder Typen zugeordnet werden, für die die PropertyTab Anzeige erfolgen soll.
Die PropertyGrid Instanziierung eines PropertyTab des Typs, der durch ein zugeordnetes PropertyTabAttribute Typ- oder Eigenschaftenfeld der zu durchsuchenden Komponente angegeben wird.
Konstruktoren
| Name | Beschreibung |
|---|---|
| PropertyTab() |
Initialisiert eine neue Instanz der PropertyTab-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Bitmap |
Ruft die Bitmap ab, die für die PropertyTab. |
| Components |
Dient zum Abrufen oder Festlegen des Arrays von Komponenten, dem die Eigenschaftenregisterkarte zugeordnet ist. |
| HelpKeyword |
Ruft das Hilfe-Schlüsselwort ab, das dieser Registerkarte zugeordnet werden soll. |
| TabName |
Ruft den Namen für die Eigenschaftenregisterkarte ab. |
Methoden
| Name | Beschreibung |
|---|---|
| CanExtend(Object) |
Ruft einen Wert ab, der angibt, ob dies PropertyTab Eigenschaften für die angegebene Komponente anzeigen kann. |
| Dispose() |
Gibt alle vom PropertyTabverwendeten Ressourcen frei. |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von den PropertyTab verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
| Finalize() |
Ermöglicht es einem PropertyTab Versuch, Ressourcen freizugeben und andere Bereinigungsvorgänge auszuführen, bevor die PropertyTab Garbage Collection erneut beansprucht wird. |
| GetDefaultProperty(Object) |
Ruft die Standardeigenschaft der angegebenen Komponente ab. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
Ruft die Eigenschaften der angegebenen Komponente ab, die den angegebenen Attributen und Kontext entsprechen. |
| GetProperties(Object, Attribute[]) |
Ruft die Eigenschaften der angegebenen Komponente ab, die den angegebenen Attributen entsprechen. |
| GetProperties(Object) |
Ruft die Eigenschaften der angegebenen Komponente ab. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |