Поделиться через


PropertyTabAttribute Конструкторы

Определение

Инициализирует новый экземпляр класса PropertyTabAttribute.

Перегрузки

PropertyTabAttribute()

Инициализирует новый экземпляр класса PropertyTabAttribute.

PropertyTabAttribute(String)

Инициализирует новый экземпляр класса PropertyTabAttribute, используя заданное имя класса вкладок.

PropertyTabAttribute(Type)

Инициализирует новый экземпляр класса PropertyTabAttribute, используя указанный тип вкладки.

PropertyTabAttribute(String, PropertyTabScope)

Инициализирует новый экземпляр класса 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

Инициализирует новый экземпляр класса 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 задано значение, отличное от Document или Component.

Применяется к

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 задано значение, отличное от 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.
    [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;
            }
        }
    }
}

Применяется к