PropertyTab 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
속성 탭에 기본 클래스를 제공합니다.
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
- 상속
-
PropertyTab
- 파생
- 구현
예제
다음 코드 예제에서는 PropertyTab 형식 이름을 기준으로 정렬 되는 구성 요소에서 속성을 나열 하는 합니다.
#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";
}
}
property System::Drawing::Bitmap^ Bitmap
{
// Provides an image for the property tab.
virtual System::Drawing::Bitmap^ get() override
{
System::Drawing::Bitmap^ bmp = gcnew System::Drawing::Bitmap( DeserializeFromBase64Text( img ) );
return bmp;
}
}
private:
// This method can be used to retrieve an Image from a block of Base64-encoded text.
Image^ DeserializeFromBase64Text( String^ text )
{
Image^ img = nullptr;
array<Byte>^memBytes = Convert::FromBase64String( text );
IFormatter^ formatter = gcnew BinaryFormatter;
MemoryStream^ stream = gcnew MemoryStream( memBytes );
img = dynamic_cast<Image^>(formatter->Deserialize( stream ));
stream->Close();
return img;
}
};
}
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Windows.Forms;
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
{
[BrowsableAttribute(true)]
// This string contains a Base-64 encoded and serialized example property tab image.
private string img = "AAEAAAD/////AQAAAAAAAAAMAgAAAFRTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA9gAAAAJCTfYAAAAAAAAANgAAACgAAAAIAAAACAAAAAEAGAAAAAAAAAAAAMQOAADEDgAAAAAAAAAAAAD///////////////////////////////////9ZgABZgADzPz/zPz/zPz9AgP//////////gAD/gAD/AAD/AAD/AACKyub///////+AAACAAAAAAP8AAP8AAP9AgP////////9ZgABZgABz13hz13hz13hAgP//////////gAD/gACA/wCA/wCA/wAA//////////+AAACAAAAAAP8AAP8AAP9AgP////////////////////////////////////8L";
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(DeserializeFromBase64Text(img));
return bmp;
}
}
// This method can be used to retrieve an Image from a block of Base64-encoded text.
private Image DeserializeFromBase64Text(string text)
{
Image img = null;
byte[] memBytes = Convert.FromBase64String(text);
IFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream(memBytes);
img = (Image)formatter.Deserialize(stream);
stream.Close();
return img;
}
}
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.IO
Imports System.Reflection
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Windows.Forms
Imports System.Windows.Forms.Design
' This component adds a TypeCategoryTab to the property browser
' that is available for any components in the current design mode document.
<PropertyTabAttribute(GetType(TypeCategoryTab), PropertyTabScope.Document)> _
Public Class TypeCategoryTabComponent
Inherits System.ComponentModel.Component
Public Sub New()
End Sub
End Class
' A TypeCategoryTab property tab lists properties by the
' category of the type of each property.
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Public Class TypeCategoryTab
Inherits PropertyTab
' This string contains a Base-64 encoded and serialized example property tab image.
<BrowsableAttribute(True)> _
Private img As String = "AAEAAAD/////AQAAAAAAAAAMAgAAAFRTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA9gAAAAJCTfYAAAAAAAAANgAAACgAAAAIAAAACAAAAAEAGAAAAAAAAAAAAMQOAADEDgAAAAAAAAAAAAD///////////////////////////////////9ZgABZgADzPz/zPz/zPz9AgP//////////gAD/gAD/AAD/AAD/AACKyub///////+AAACAAAAAAP8AAP8AAP9AgP////////9ZgABZgABz13hz13hz13hAgP//////////gAD/gACA/wCA/wCA/wAA//////////+AAACAAAAAAP8AAP8AAP9AgP////////////////////////////////////8L"
Public Sub New()
End Sub
' Returns the properties of the specified component extended with
' a CategoryAttribute reflecting the name of the type of the property.
Public Overloads Overrides Function GetProperties(ByVal component As Object, ByVal attributes() As System.Attribute) As System.ComponentModel.PropertyDescriptorCollection
Dim props As PropertyDescriptorCollection
If attributes Is Nothing Then
props = TypeDescriptor.GetProperties(component)
Else
props = TypeDescriptor.GetProperties(component, attributes)
End If
Dim propArray(props.Count - 1) As PropertyDescriptor
Dim i As Integer
For i = 0 To props.Count - 1
' 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))
Next i
Return New PropertyDescriptorCollection(propArray)
End Function
Public Overloads Overrides Function GetProperties(ByVal component As Object) As System.ComponentModel.PropertyDescriptorCollection
Return Me.GetProperties(component, Nothing)
End Function
' Provides the name for the property tab.
Public Overrides ReadOnly Property TabName() As String
Get
Return "Properties by Type"
End Get
End Property
' Provides an image for the property tab.
Public Overrides ReadOnly Property Bitmap() As System.Drawing.Bitmap
Get
Dim bmp As New Bitmap(DeserializeFromBase64Text(img))
Return bmp
End Get
End Property
' This method can be used to retrieve an Image from a block of Base64-encoded text.
Private Function DeserializeFromBase64Text(ByVal [text] As String) As Image
Dim img As Image = Nothing
Dim memBytes As Byte() = Convert.FromBase64String([text])
Dim formatter As New BinaryFormatter()
Dim stream As New MemoryStream(memBytes)
img = CType(formatter.Deserialize(stream), Image)
stream.Close()
Return img
End Function
End Class
설명
PropertyTab 클래스 속성 탭에 대 한 기본 클래스 동작을 제공 합니다. 속성 탭의 도구 모음에 표시 되는 PropertyGrid 속성 창의 컨트롤 하 고 해당 속성 또는 기타 데이터의 다른 보기를 표시 하는 구성 요소를 허용 합니다.
사용자 코드에서 일반적으로 만들지의 인스턴스는 PropertyTab 직접. 대신를 PropertyTabAttribute 속성 탭의 형식을 나타내는 또는 속성 구성 요소 속성을 사용 하 여 연결 수에 대 한 표시를 탭 형식에 PropertyTab 에 대 한 표시 합니다.
합니다 PropertyGrid 인스턴스화를 PropertyTab 하 여 지정 된 형식의 PropertyTabAttribute 검색 되는 구성 요소의 형식 또는 속성 필드와 연결 된 합니다.
생성자
PropertyTab() |
PropertyTab 클래스의 새 인스턴스를 초기화합니다. |
속성
Bitmap |
PropertyTab에 대해 표시되는 비트맵을 가져옵니다. |
Components |
속성 탭이 연결되는 구성 요소의 배열을 가져오거나 설정합니다. |
HelpKeyword |
이 탭에 연결될 도움말 키워드를 가져옵니다. |
TabName |
속성 탭의 이름을 가져옵니다. |
메서드
CanExtend(Object) |
이 PropertyTab에서, 지정된 구성 요소의 속성을 표시할 수 있는지 여부를 나타내는 값을 가져옵니다. |
Dispose() |
PropertyTab에서 사용하는 리소스를 모두 해제합니다. |
Dispose(Boolean) |
PropertyTab에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
Finalize() |
가비지 수집기에서 PropertyTab를 회수하기 전에 PropertyTab가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. |
GetDefaultProperty(Object) |
지정된 구성 요소의 기본 속성을 가져옵니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
지정된 특성 및 컨텍스트와 일치하는 지정된 구성 요소의 속성을 가져옵니다. |
GetProperties(Object) |
지정한 구성 요소의 속성을 가져옵니다. |
GetProperties(Object, Attribute[]) |
지정된 특성과 일치하는 지정된 구성 요소의 속성을 가져옵니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |