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 System.Drawing.Printing.Margins(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))

下面的代码示例演示如何使用 NotifyParentPropertyAttributeExpandableObjectConverter 类在自定义控件上创建可展开属性。 此代码示例是为 NotifyParentPropertyAttribute 类提供的一个更大示例的一部分。

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

    [Browsable(true),
    NotifyParentProperty(true),
    EditorBrowsable(EditorBrowsableState.Always),
    DefaultValue(1)]
    public int BorderSize
    {
        get
        {
            return 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
        {
            return 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可展开,请为 和 GetProperties的标准实现GetPropertiesSupported指定此TypeConverter类型。 使用 NotifyParentPropertyAttribute 标记子属性,以确保控件中 PropertyGrid 的行为正确。

注意

永远不应直接访问类型转换器。 相反,请使用 TypeDescriptor调用相应的转换器。 有关详细信息,请参阅基类中的 TypeConverter 示例。

有关类型转换器的详细信息,请参阅 TypeConverter 基类和 如何:实现类型转换器

构造函数

ExpandableObjectConverter()

初始化 ExpandableObjectConverter 类的新实例。

方法

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)

使用指定的上下文返回值参数指定的数组类型的属性的集合。

(继承自 TypeConverter)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

获取由值参数指定的对象类型的属性集合。

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)

适用于

另请参阅