ExpandableObjectConverter 类

定义

提供在可扩展对象与其他各种表示形式之间实现转换的类型转换器。Provides a type converter to convert expandable objects to and from various other representations.

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的变量转换为字符串变量。The following code example converts a variable of type Margins to a string variable.

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))

下面的代码示例演示如何使用NotifyParentPropertyAttribute ExpandableObjectConverter和类来创建自定义控件的可展开属性。The following code example demonstrates how to use the NotifyParentPropertyAttribute and the ExpandableObjectConverter class to create an expandable property on a custom control. 此代码示例是为NotifyParentPropertyAttribute类提供的更大示例的一部分。This code example is part of a larger example provided for the NotifyParentPropertyAttribute class.

[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的方法和属性。This class adds support for properties on an object to the methods and properties provided by TypeConverter. 若要使类型的属性在PropertyGrid中可扩展, 请为TypeConverter GetPropertiesSupportedGetProperties的标准实现指定此类型。To make a type of property expandable in the PropertyGrid, specify this TypeConverter for standard implementations of GetPropertiesSupported and GetProperties. 使用NotifyParentPropertyAttribute标记子属性, 以确保PropertyGrid控件中的行为正确。Mark child properties with the NotifyParentPropertyAttribute to ensure correct behavior in a PropertyGrid control.

备注

永远不应直接访问类型转换器。You should never access a type converter directly. 改为使用TypeDescriptor调用适当的转换器。Instead, call the appropriate converter by using TypeDescriptor. 有关详细信息, 请参阅TypeConverter基类中的示例。For more information, see the examples in the TypeConverter base class.

有关类型转换器的详细信息, 请参阅TypeConverter基类和如何:实现类型转换器For more information about type converters, see the TypeConverter base class and How to: Implement a Type Converter.

构造函数

ExpandableObjectConverter()

初始化 ExpandableObjectConverter 类的新实例。Initializes a new instance of the ExpandableObjectConverter class.

方法

CanConvertFrom(ITypeDescriptorContext, Type)

返回该转换器是否可以使用指定上下文将给定类型的对象转换为此转换器的类型。Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.

(继承自 TypeConverter)
CanConvertFrom(Type)

返回该转换器是否可以将给定类型的对象转换为此转换器的类型。Returns whether this converter can convert an object of the given type to the type of this converter.

(继承自 TypeConverter)
CanConvertTo(ITypeDescriptorContext, Type)

返回此转换器能否使用指定上下文将对象转换为指定类型。Returns whether this converter can convert the object to the specified type, using the specified context.

(继承自 TypeConverter)
CanConvertTo(Type)

返回此转换器是否可将该对象转换为指定的类型。Returns whether this converter can convert the object to the specified type.

(继承自 TypeConverter)
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

使用指定的上下文和区域性信息将给定对象转换为此转换器的类型。Converts the given object to the type of this converter, using the specified context and culture information.

(继承自 TypeConverter)
ConvertFrom(Object)

将给定值转换为此转换器的类型。Converts the given value to the type of this converter.

(继承自 TypeConverter)
ConvertFromInvariantString(ITypeDescriptorContext, String)

使用不变区域性和指定上下文将给定字符串转换为此转换器的类型。Converts the given string to the type of this converter, using the invariant culture and the specified context.

(继承自 TypeConverter)
ConvertFromInvariantString(String)

使用不变区域性将给定字符串转换为此转换器的类型。Converts the given string to the type of this converter, using the invariant culture.

(继承自 TypeConverter)
ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

使用指定的上下文和区域性信息将给定的文本转换为对象。Converts the given text to an object, using the specified context and culture information.

(继承自 TypeConverter)
ConvertFromString(ITypeDescriptorContext, String)

使用指定的上下文将给定的文本转换为对象。Converts the given text to an object, using the specified context.

(继承自 TypeConverter)
ConvertFromString(String)

将指定文本转换为对象。Converts the specified text to an object.

(继承自 TypeConverter)
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

使用指定的上下文和区域性信息将给定值对象转换为指定的类型。Converts the given value object to the specified type, using the specified context and culture information.

(继承自 TypeConverter)
ConvertTo(Object, Type)

使用参数将给定的值对象转换为指定的类型。Converts the given value object to the specified type, using the arguments.

(继承自 TypeConverter)
ConvertToInvariantString(ITypeDescriptorContext, Object)

使用指定的上下文将指定的值转换为区域性不变的字符串表示形式。Converts the specified value to a culture-invariant string representation, using the specified context.

(继承自 TypeConverter)
ConvertToInvariantString(Object)

将指定值转换为区域性不变的字符串表示形式。Converts the specified value to a culture-invariant string representation.

(继承自 TypeConverter)
ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

使用指定的上下文和区域性信息将给定的值转换为字符串表示形式。Converts the given value to a string representation, using the specified context and culture information.

(继承自 TypeConverter)
ConvertToString(ITypeDescriptorContext, Object)

使用给定的上下文将给定的值转换为字符串表示形式。Converts the given value to a string representation, using the given context.

(继承自 TypeConverter)
ConvertToString(Object)

将指定值转换为字符串表示形式。Converts the specified value to a string representation.

(继承自 TypeConverter)
CreateInstance(IDictionary)

在给定 Object 的一组属性值的情况下重新创建该对象。Re-creates an Object given a set of property values for the object.

(继承自 TypeConverter)
CreateInstance(ITypeDescriptorContext, IDictionary)

给定该对象的一组属性值,使用指定上下文创建与此 TypeConverter 相关联的类型的实例。Creates an instance of the type that this TypeConverter is associated with, using the specified context, given a set of property values for the object.

(继承自 TypeConverter)
Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(继承自 Object)
GetConvertFromException(Object)

返回无法执行转换时引发的异常。Returns an exception to throw when a conversion cannot be performed.

(继承自 TypeConverter)
GetConvertToException(Object, Type)

返回无法执行转换时引发的异常。Returns an exception to throw when a conversion cannot be performed.

(继承自 TypeConverter)
GetCreateInstanceSupported()

返回更改此对象的值是否求调用 CreateInstance(IDictionary) 方法来创建新值。Returns whether changing a value on this object requires a call to the CreateInstance(IDictionary) method to create a new value.

(继承自 TypeConverter)
GetCreateInstanceSupported(ITypeDescriptorContext)

返回有关更改该对象上的某个值是否需要使用指定的上下文调用 CreateInstance(IDictionary) 以创建新值的情况。Returns whether changing a value on this object requires a call to CreateInstance(IDictionary) to create a new value, using the specified context.

(继承自 TypeConverter)
GetHashCode()

用作默认哈希函数。Serves as the default hash function.

(继承自 Object)
GetProperties(ITypeDescriptorContext, Object)

使用指定的上下文返回值参数指定的数组类型的属性的集合。Returns a collection of properties for the type of array specified by the value parameter, using the specified context.

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

获取由值参数指定的对象类型的属性集合。Gets a collection of properties for the type of object specified by the value parameter.

GetProperties(Object)

返回由值参数指定的数组类型的属性集合。Returns a collection of properties for the type of array specified by the value parameter.

(继承自 TypeConverter)
GetPropertiesSupported()

返回此对象是否支持属性。Returns whether this object supports properties.

(继承自 TypeConverter)
GetPropertiesSupported(ITypeDescriptorContext)

获取一个值,该值指示此对象是否使用指定的上下文支持属性。Gets a value indicating whether this object supports properties using the specified context.

GetStandardValues()

从默认的上下文返回此类型转换器设计用于的数据类型的标准值集合。Returns a collection of standard values from the default context for the data type this type converter is designed for.

(继承自 TypeConverter)
GetStandardValues(ITypeDescriptorContext)

当与格式上下文一起提供时,返回此类型转换器设计用于的数据类型的标准值集合。Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.

(继承自 TypeConverter)
GetStandardValuesExclusive()

返回从 GetStandardValues() 返回的标准值的集合是否为独占列表。Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list.

(继承自 TypeConverter)
GetStandardValuesExclusive(ITypeDescriptorContext)

使用指定的上下文返回从 GetStandardValues() 返回的标准值的集合是否为可能值的独占列表。Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list of possible values, using the specified context.

(继承自 TypeConverter)
GetStandardValuesSupported()

返回此对象是否支持可以从列表中选取的标准值集。Returns whether this object supports a standard set of values that can be picked from a list.

(继承自 TypeConverter)
GetStandardValuesSupported(ITypeDescriptorContext)

使用指定的上下文返回此对象是否支持可以从列表中选取的标准值集。Returns whether this object supports a standard set of values that can be picked from a list, using the specified context.

(继承自 TypeConverter)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
IsValid(ITypeDescriptorContext, Object)

返回给定值对象对于此类型和此指定的上下文是否有效。Returns whether the given value object is valid for this type and for the specified context.

(继承自 TypeConverter)
IsValid(Object)

返回给定值对象对于此类型是否有效。Returns whether the given value object is valid for this type.

(继承自 TypeConverter)
MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(继承自 Object)
SortProperties(PropertyDescriptorCollection, String[])

对属性的集合进行排序。Sorts a collection of properties.

(继承自 TypeConverter)
ToString()

返回一个表示当前对象的 string。Returns a string that represents the current object.

(继承自 Object)

适用于

另请参阅