什么叫类型转换器?
.NET Framework 类库为常见数据类型(如整数、小数、布尔值和其他数据)提供了类型转换器。类型转换器的目的通常是用来提供字符串到数值的转换(从字符串数据转换为其他数据类型)。常见数据类型与默认类型转换器(将数值转换为字符串,并将字符串转换为相应数据类型)相关联。如果定义了自定义(即,非标准)数据类型的属性,则应用的属性必须将类型转换器指定为与该属性相关联。

      前篇文章中的为何没有用到, 其实它也用到了, 因为它用的是系统自带的类型int, 类型转换器已经由系统自动提供了.
     如果我们使用了自己定义的类型, 因为系统中没有相应的类型转换器, 这就需要我们写一个类型转换器.

     下面我们写一个稍稍复杂点的属性, 它是由简单的类型加简单的属性组合而成的,(没有晕吧),
也就是说我要自已定义一个类型, 而不用系统自带的类型(比如前篇文章中的int类型)

      下面就是拥有一个简单的复杂属性的简单控件, Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器
  1Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器using System.ComponentModel;
  2Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器using System.Windows.Forms;
  3Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器using System.Drawing;
  4Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器
  5Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器namespace CustomControlSample
  6

编译, 拖到windows窗体上,点击查看属性浏览器,
Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器

wow, 是灰色的,不能使用. 为啥?
..... 那是因为属性浏览器不知道如何转换我的属性,
我们不是写了类型转换器了吗? 没有被使用, ...
又要用到Attribute了,这真是个好东西呀
在上面的代码中的属性ComplexProperty 用TypeConverter (TypeConverterAttribute的缩写)指定一下我们自定义的类型的类型转换器即可.
Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器        [TypeConverter(typeof(SimpleCustomTypeConverter))]
Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器        
public SimpleCustomType ComplexProperty
        }

再编译......查看属性浏览器
Dot Net WinForm 控件开发 (三) 自定义类型的属性需要自定义类型转换器

OK了
The end.

相关文章:

  • 2021-09-29
  • 2021-12-29
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-24
  • 2021-04-30
  • 2021-09-04
相关资源
相似解决方案