PropertyTabAttribute 建構函式

定義

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

多載

名稱 Description
PropertyTabAttribute()

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

PropertyTabAttribute(String)

使用指定的 tab 類別名稱初始化該類別的新實例 PropertyTabAttribute

PropertyTabAttribute(Type)

使用指定類型的 Tab 初始化該類別的新實例 PropertyTabAttribute

PropertyTabAttribute(String, PropertyTabScope)

使用指定的 tab 類別名稱和 tab 作用域初始化該 PropertyTabAttribute 類別的新實例。

PropertyTabAttribute(Type, PropertyTabScope)

使用指定的 tab 類型與 tab 作用域初始化該類別的新實例 PropertyTabAttribute

PropertyTabAttribute()

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

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

備註

這是一個無參數建構子,能產生一個未初始化的 PropertyTabAttribute。 此建構子可用來從此屬性推導,並透過呼叫 InitializeArrays來指定多種分頁類型。

另請參閱

適用於

PropertyTabAttribute(String)

使用指定的 tab 類別名稱初始化該類別的新實例 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)

使用指定類型的 Tab 初始化該類別的新實例 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)

使用指定的 tab 類別名稱和 tab 作用域初始化該 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 A 表示這個分頁的範圍。若作用域為 Component,則僅對應的PropertyTabAttribute分量顯示。 如果是 Document,則會顯示文件中所有元件的值。

例外狀況

tabScope 不是 DocumentComponent

適用於

PropertyTabAttribute(Type, PropertyTabScope)

使用指定的 tab 類型與 tab 作用域初始化該類別的新實例 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 A 表示這個分頁的範圍。若作用域為 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.
[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);
}

適用於