PropertyTabAttribute 建構函式

定義

初始化 PropertyTabAttribute 類別的新執行個體。

多載

PropertyTabAttribute()

初始化 PropertyTabAttribute 類別的新執行個體。

PropertyTabAttribute(String)

使用指定的索引標籤類別名稱,初始化 PropertyTabAttribute 類別的新執行個體。

PropertyTabAttribute(Type)

使用指定的索引標籤型別,初始化 PropertyTabAttribute 類別的新執行個體。

PropertyTabAttribute(String, PropertyTabScope)

使用指定的索引標籤類別名稱和索引標籤範圍 (Scope),初始化 PropertyTabAttribute 類別的新執行個體。

PropertyTabAttribute(Type, PropertyTabScope)

使用指定的索引標籤型別和索引標籤範圍,初始化 PropertyTabAttribute 類別的新執行個體。

PropertyTabAttribute()

來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs

初始化 PropertyTabAttribute 類別的新執行個體。

public:
 PropertyTabAttribute();
public PropertyTabAttribute ();
Public Sub New ()

備註

這是無參數建構函式,可建立未初始化的 PropertyTabAttribute。 這個建構函式可用來衍生自這個屬性,並藉由呼叫 InitializeArrays來指定多個索引標籤類型。

另請參閱

適用於

PropertyTabAttribute(String)

來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs

使用指定的索引標籤類別名稱,初始化 PropertyTabAttribute 類別的新執行個體。

public:
 PropertyTabAttribute(System::String ^ tabClassName);
public PropertyTabAttribute (string tabClassName);
new System.ComponentModel.PropertyTabAttribute : string -> System.ComponentModel.PropertyTabAttribute
Public Sub New (tabClassName As String)

參數

tabClassName
String

要建立之索引標籤型別的組件限定名稱。 如需這個格式慣例的範例,請參閱 AssemblyQualifiedName

適用於

PropertyTabAttribute(Type)

來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs

使用指定的索引標籤型別,初始化 PropertyTabAttribute 類別的新執行個體。

public:
 PropertyTabAttribute(Type ^ tabClass);
public PropertyTabAttribute (Type tabClass);
new System.ComponentModel.PropertyTabAttribute : Type -> System.ComponentModel.PropertyTabAttribute
Public Sub New (tabClass As Type)

參數

tabClass
Type

要建立的索引標籤類型。

適用於

PropertyTabAttribute(String, PropertyTabScope)

來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs

使用指定的索引標籤類別名稱和索引標籤範圍 (Scope),初始化 PropertyTabAttribute 類別的新執行個體。

public:
 PropertyTabAttribute(System::String ^ tabClassName, System::ComponentModel::PropertyTabScope tabScope);
public PropertyTabAttribute (string tabClassName, System.ComponentModel.PropertyTabScope tabScope);
new System.ComponentModel.PropertyTabAttribute : string * System.ComponentModel.PropertyTabScope -> System.ComponentModel.PropertyTabAttribute
Public Sub New (tabClassName As String, tabScope As PropertyTabScope)

參數

tabClassName
String

要建立之索引標籤型別的組件限定名稱。 如需這個格式慣例的範例,請參閱 AssemblyQualifiedName

tabScope
PropertyTabScope

PropertyTabScope 表示這個索引標籤的範圍。如果範圍是 Component,則只會針對具有對應 PropertyTabAttribute之的元件顯示。 如果是 Document,則會顯示文件上所有元件的範圍。

例外狀況

tabScope 不是 DocumentComponent

適用於

PropertyTabAttribute(Type, PropertyTabScope)

來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs
來源:
PropertyTabAttribute.cs

使用指定的索引標籤型別和索引標籤範圍,初始化 PropertyTabAttribute 類別的新執行個體。

public:
 PropertyTabAttribute(Type ^ tabClass, System::ComponentModel::PropertyTabScope tabScope);
public PropertyTabAttribute (Type tabClass, System.ComponentModel.PropertyTabScope tabScope);
new System.ComponentModel.PropertyTabAttribute : Type * System.ComponentModel.PropertyTabScope -> System.ComponentModel.PropertyTabAttribute
Public Sub New (tabClass As Type, tabScope As PropertyTabScope)

參數

tabClass
Type

要建立的索引標籤類型。

tabScope
PropertyTabScope

PropertyTabScope 表示這個索引標籤的範圍。如果範圍是 Component,則只會針對具有對應 PropertyTabAttribute之的元件顯示。 如果是 Document,則會顯示文件上所有元件的範圍。

例外狀況

tabScope 不是 DocumentComponent

範例

下列程式代碼範例示範如何使用 PropertyTabAttribute 來指定屬性索引標籤。

#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.
    [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.
    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 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(@"myproperty.bmp", true);
                return bmp;
            }
        }
    }
}

適用於