ExpandableObjectConverter 類別

定義

提供型別轉換器,可將可展開物件轉換為各種其他表示方式。

public ref class ExpandableObjectConverter : System::ComponentModel::TypeConverter
public class ExpandableObjectConverter : System.ComponentModel.TypeConverter
type ExpandableObjectConverter = class
    inherit TypeConverter
Public Class ExpandableObjectConverter
Inherits TypeConverter
繼承
ExpandableObjectConverter
衍生

範例

以下程式碼範例將一個型態 Margins 的變數轉換成字串變數。

String^ strM = "1,2,3,4";
System::Drawing::Printing::Margins^ m = gcnew System::Drawing::Printing::Margins( 1,2,3,4 );
Console::WriteLine( TypeDescriptor::GetConverter( strM )->CanConvertTo( System::Drawing::Printing::Margins::typeid ) );
Console::WriteLine( TypeDescriptor::GetConverter( m )->ConvertToString( m ) );
string strM = "1,2,3,4";
System.Drawing.Printing.Margins m = new(1, 2, 3, 4);
Console.WriteLine(TypeDescriptor.GetConverter(strM).CanConvertTo(typeof(System.Drawing.Printing.Margins)));
Console.WriteLine(TypeDescriptor.GetConverter(m).ConvertToString(m));
Dim strM As String
strM = "1,2,3,4"
            Dim m As New System.Drawing.Printing.Margins(1, 2, 3, 4)
Console.WriteLine(TypeDescriptor.GetConverter(strM).CanConvertTo(GetType(System.Drawing.Printing.Margins)))
Console.WriteLine(TypeDescriptor.GetConverter(m).ConvertToString(m))

以下程式碼範例示範如何使用 NotifyParentPropertyAttribute 和 類別 ExpandableObjectConverter ,在自訂控制項上建立可展開的屬性。 此程式碼範例是本類別更大範例 NotifyParentPropertyAttribute 的一部分。

[TypeConverter(typeof(BorderAppearanceConverter))]
public class BorderAppearance
{
    int borderSizeValue = 1;
    Color borderColorValue = Color.Empty;

    [Browsable(true),
    NotifyParentProperty(true),
    EditorBrowsable(EditorBrowsableState.Always),
    DefaultValue(1)]
    public int BorderSize
    {
        get => borderSizeValue;
        set
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(
                    "BorderSize",
                    value,
                    "must be >= 0");
            }

            if (borderSizeValue != value)
            {
                borderSizeValue = value;
            }
        }
    }

    [Browsable(true)]
    [NotifyParentProperty(true)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    [DefaultValue(typeof(Color), "")]
    public Color BorderColor
    {
        get => borderColorValue;
        set
        {
            if (value.Equals(Color.Transparent))
            {
                throw new NotSupportedException("Transparent colors are not supported.");
            }

            if (borderColorValue != value)
            {
                borderColorValue = value;
            }
        }
    }
}
<TypeConverter(GetType(BorderAppearanceConverter))>  _
Public Class BorderAppearance
    Private borderSizeValue As Integer = 1
    Private borderColorValue As Color = Color.Empty
    
    
    <Browsable(True), NotifyParentProperty(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(1)>  _
    Public Property BorderSize() As Integer 
        Get
            Return borderSizeValue
        End Get
        Set
            If value < 0 Then
                Throw New ArgumentOutOfRangeException("BorderSize", value, "must be >= 0")
            End If
            
            If borderSizeValue <> value Then
                borderSizeValue = value
            End If
        End Set
    End Property
    
    
    <Browsable(True), NotifyParentProperty(True), EditorBrowsable(EditorBrowsableState.Always), DefaultValue(GetType(Color), "")>  _
    Public Property BorderColor() As Color 
        Get
            Return borderColorValue
        End Get
        Set
            If value.Equals(Color.Transparent) Then
                Throw New NotSupportedException("Transparent colors are not supported.")
            End If
            
            If borderColorValue <> value Then
                borderColorValue = value
            End If
        End Set
    End Property
End Class

備註

此類別在 所提供 TypeConverter的方法與屬性之外,新增了對物件屬性的支援。 為了使某類型的性質在 中PropertyGrid可展開,請GetPropertiesSupported對 和 GetProperties的標準實作指定此TypeConverter點。 用 標記子屬性 NotifyParentPropertyAttribute ,以確保控制項中的 PropertyGrid 正確行為。

備註

你絕對不應該直接使用字型轉換器。 相反地,請使用 TypeDescriptor相應的轉換器。 更多資訊請參閱基底類別中的範例 TypeConverter

欲了解更多類型轉換器的資訊,請參閱 TypeConverter 基底類別。

建構函式

名稱 Description
ExpandableObjectConverter()

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

方法

名稱 Description
CanConvertFrom(ITypeDescriptorContext, Type)

回傳此轉換器是否能在指定上下文下,將指定類型的物件轉換為該轉換器的類型。

(繼承來源 TypeConverter)
CanConvertFrom(Type)

回傳此轉換器是否能將指定類型的物件轉換為該轉換器的類型。

(繼承來源 TypeConverter)
CanConvertTo(ITypeDescriptorContext, Type)

傳回這個轉換子是否可以使用指定的內容,將 對象轉換成指定的型別。

(繼承來源 TypeConverter)
CanConvertTo(Type)

回傳此轉換器是否能將物件轉換為指定類型。

(繼承來源 TypeConverter)
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

利用指定的上下文與文化資訊,將給定物件轉換為該轉換器的類型。

(繼承來源 TypeConverter)
ConvertFrom(Object)

將給定值轉換為該轉換器的類型。

(繼承來源 TypeConverter)
ConvertFromInvariantString(ITypeDescriptorContext, String)

利用不變文化與指定的上下文,將給定字串轉換為該轉換器的類型。

(繼承來源 TypeConverter)
ConvertFromInvariantString(String)

利用不變培養法將給定字串轉換為該轉換器的類型。

(繼承來源 TypeConverter)
ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

利用指定的上下文與文化資訊,將給定文本轉換為物件。

(繼承來源 TypeConverter)
ConvertFromString(ITypeDescriptorContext, String)

將給定文字轉換為物件,並依照指定的上下文。

(繼承來源 TypeConverter)
ConvertFromString(String)

將指定的文字轉換成物件。

(繼承來源 TypeConverter)
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

使用指定的內容和文化特性資訊,將指定的值物件轉換成指定的型別。

(繼承來源 TypeConverter)
ConvertTo(Object, Type)

利用參數將給定值物件轉換為指定的型別。

(繼承來源 TypeConverter)
ConvertToInvariantString(ITypeDescriptorContext, Object)

將指定的值轉換為文化不變的字串表示法,並依照指定的上下文進行。

(繼承來源 TypeConverter)
ConvertToInvariantString(Object)

將指定的值轉換為文化不變的字串表示。

(繼承來源 TypeConverter)
ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

利用指定的上下文與文化資訊,將給定值轉換為字串表示。

(繼承來源 TypeConverter)
ConvertToString(ITypeDescriptorContext, Object)

利用給定上下文將給定值轉換為字串表示。

(繼承來源 TypeConverter)
ConvertToString(Object)

將指定的值轉換為字串表示。

(繼承來源 TypeConverter)
CreateInstance(IDictionary)

為物件重建 Object 一組給定的屬性值。

(繼承來源 TypeConverter)
CreateInstance(ITypeDescriptorContext, IDictionary)

根據指定的上下文,根據物件的屬性值,建立該物件所關聯類型的 TypeConverter 實例。

(繼承來源 TypeConverter)
Equals(Object)

判斷指定的 物件是否等於目前的物件。

(繼承來源 Object)
GetConvertFromException(Object)

當無法執行轉換時,回傳一個例外以拋出。

(繼承來源 TypeConverter)
GetConvertToException(Object, Type)

當無法執行轉換時,回傳一個例外以拋出。

(繼承來源 TypeConverter)
GetCreateInstanceSupported()

回傳變更此物件值是否需要呼叫 CreateInstance(IDictionary) 該方法以建立新值。

(繼承來源 TypeConverter)
GetCreateInstanceSupported(ITypeDescriptorContext)

回傳是否需要在指定上下文下, CreateInstance(IDictionary) 變更此物件的值以建立新值。

(繼承來源 TypeConverter)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

取得一組由值參數指定的物件類型屬性。

GetProperties(ITypeDescriptorContext, Object)

回傳一組由值參數指定的陣列類型屬性,並依照指定的上下文。

(繼承來源 TypeConverter)
GetProperties(Object)

回傳一組由值參數指定的陣列類型屬性。

(繼承來源 TypeConverter)
GetPropertiesSupported()

回傳此物件是否支援屬性。

(繼承來源 TypeConverter)
GetPropertiesSupported(ITypeDescriptorContext)

會取得一個值,表示該物件是否在指定的上下文下支援屬性。

GetStandardValues()

從預設上下文回傳一組標準值,針對此類型轉換器所設計的資料型別。

(繼承來源 TypeConverter)
GetStandardValues(ITypeDescriptorContext)

當提供格式上下文時,回傳一組標準值,針對此類型轉換器所設計的資料型別。

(繼承來源 TypeConverter)
GetStandardValuesExclusive()

回傳從 GetStandardValues() 返回的標準值集合是否為排他列表。

(繼承來源 TypeConverter)
GetStandardValuesExclusive(ITypeDescriptorContext)

回傳從 返回的 GetStandardValues() 標準值集合是否為一個可能值的排他清單,且需使用指定的上下文。

(繼承來源 TypeConverter)
GetStandardValuesSupported()

回傳此物件是否支援可從列表中選取的標準值集合。

(繼承來源 TypeConverter)
GetStandardValuesSupported(ITypeDescriptorContext)

回傳此物件是否支援可從指定上下文中選擇的標準值集合。

(繼承來源 TypeConverter)
GetType()

取得目前實例的 Type

(繼承來源 Object)
IsValid(ITypeDescriptorContext, Object)

回傳給定值物件是否適用於此類型及指定上下文。

(繼承來源 TypeConverter)
IsValid(Object)

回傳給定值物件是否適用於此類型。

(繼承來源 TypeConverter)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
SortProperties(PropertyDescriptorCollection, String[])

整理一組屬性。

(繼承來源 TypeConverter)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於

另請參閱