PropertyTab Klasse

Definition

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)

Gilt für: