|
在上一篇文章,我為控件添加一個一個復雜屬性,并且為這個屬性的類型的編寫了一個類型轉換器,現(xiàn)在我們來看看這個類型轉換器的代碼,并解釋一下這些代碼的意義。
要實現(xiàn)一個類型轉換器,我們必須要重寫(override)四個方法:
CanConvertFrom()――根據(jù)類型參數(shù)進行測試,判斷是否能從這個類型轉換成當前類型,在本例中我們只提供轉換string和InstanceDescriptor類型的能力。
CanConvertTo()――根據(jù)類型參數(shù)進行測試,判斷是否能從當前類型轉換成指定的類型。
ConvertTo()――將參數(shù)value的值轉換為指定的類型。
ConvertFrom()――串換參數(shù)value,并返回但書類型的一個對象。
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
String result = "";
if (destinationType == typeof(String))
{
Scope scope = (Scope)value;
result = scope.Min.ToString()+"," + scope.Max.ToString();
return result;
}
if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(Scope).GetConstructor(new Type[]
{typeof(Int32),
typeof(Int32) }); Scope scope = (Scope)value;
return new InstanceDescriptor(ci, new object[]
{ scope.Min,scope.Max });
}
return base.ConvertTo(context, culture, value, destinationType);
}
NET技術:WinForm控件開發(fā)總結(六)-----控件屬性類型轉換器代碼詳解,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。