PropertyTabAttribute 생성자

정의

PropertyTabAttribute 클래스의 새 인스턴스를 초기화합니다.

오버로드

Name Description
PropertyTabAttribute()

PropertyTabAttribute 클래스의 새 인스턴스를 초기화합니다.

PropertyTabAttribute(String)

지정된 탭 클래스 이름을 사용하여 클래스의 PropertyTabAttribute 새 인스턴스를 초기화합니다.

PropertyTabAttribute(Type)

지정된 형식의 탭을 PropertyTabAttribute 사용하여 클래스의 새 인스턴스를 초기화합니다.

PropertyTabAttribute(String, PropertyTabScope)

지정된 탭 클래스 이름 및 탭 범위를 사용하여 클래스의 PropertyTabAttribute 새 인스턴스를 초기화합니다.

PropertyTabAttribute(Type, PropertyTabScope)

지정된 형식의 PropertyTabAttribute 탭 및 탭 범위를 사용하여 클래스의 새 인스턴스를 초기화합니다.

PropertyTabAttribute()

PropertyTabAttribute 클래스의 새 인스턴스를 초기화합니다.

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

설명

초기화 PropertyTabAttribute되지 않은 생성자를 만드는 매개 변수가 없는 생성자입니다. 이 생성자는 이 특성에서 파생되고 호출 InitializeArrays하여 여러 탭 유형을 지정하는 데 사용할 수 있습니다.

추가 정보

적용 대상

PropertyTabAttribute(String)

지정된 탭 클래스 이름을 사용하여 클래스의 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 사용하여 클래스의 새 인스턴스를 초기화합니다.

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 새 인스턴스를 초기화합니다.

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

이 탭의 범위를 나타내는 A PropertyTabScope 입니다. 범위인 Component경우 해당 PropertyTabAttribute되는 구성 요소에 대해서만 표시됩니다. Document이 경우 문서의 모든 구성 요소에 대해 표시됩니다.

예외

tabScope가 아닙니다Document.Component

적용 대상

PropertyTabAttribute(Type, PropertyTabScope)

지정된 형식의 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

이 탭의 범위를 나타내는 A PropertyTabScope 입니다. 범위인 Component경우 해당 PropertyTabAttribute되는 구성 요소에 대해서만 표시됩니다. Document이 경우 문서의 모든 구성 요소에 대해 표시됩니다.

예외

tabScope가 아닙니다Document.Component

예제

다음 코드 예제에서는 속성 탭을 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);
}

적용 대상