自定义组件之属性(Property)的性质(Attribute)介绍(二)
2007-04-13 15:43
513 查看
一:属性转换器(TypeConverter) 1、 下拉列表框的形式: 要使用下拉列表框的形式的属性我们首先要定义一个属性,在这个例子中我定义了一个字符串类型的属性 FileName。 private string _fileName; public string FileName { get { return this._fileName;} set { this._fileName=value; } } 定义完属性之后,我们还要自己一个属性转换器。那么什么是属性转换器呢?其实在属性浏览器中只能够识别字符串类型,所以我们要通过属性转换器把我们的属性转换成字符串,还要在属性浏览器改变这个字符串之后在把这个字符串转换成我们自己的属性。大家听起来是不是有一些胡涂了?没关系下面我们做一个属性转换器大家就知道了。 因为在本例中用的属性是字符串类型的所以我们要从System.ComponentModel.StringConverter继承一个新的字符串形式的属性转换器。下面就是这段代码和代码中的注释,相信大家一定能够看懂的: /// <summary> /// 扩展字符串的转换器(实现下拉列表框的样式) /// </summary> public class FileNameConverter:System.ComponentModel.StringConverter { /// <summary> /// 根据返回值确定是否支持下拉框的形式 /// </summary> /// <returns> /// true: 下来框的形式 /// false: 普通文本编辑的形式 /// </returns> public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context) { return true; } /// <summary> /// 下拉框中具体的内容 /// </summary> public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context) { return new StandardValuesCollection(new string[]{"File1.bat","File2.exe","File3.dll"}); } /// <summary> /// 根据返回值确定是否是不可编辑的文本框 /// </summary> /// <returns> /// true: 文本框不可以编辑 /// flase: 文本框可以编辑 /// </returns> public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context) { return true; } 好了,属性转换器写完了,最后别忘了把这个属性转换器指定到我们刚才所写的属性上哦,代码如下: [CategoryAttribute("自定义的复杂类型设置(包括自定义类型转换器)"), TypeConverterAttribute(typeof(PropertyGridApp.FileNameConverter)), ReadOnlyAttribute(false)] public string FileName { get { return this._fileName;} set { this._fileName=value; } } |
相关文章推荐
- 自定义组件之属性(Property)的性质(Attribute)介绍(二)
- 自定义组件之属性(Property)的性质(Attribute)介绍(一)
- 自定义组件之属性(Property)的性质(Attribute)介绍(三)
- 自定义组件之属性(Property)的性质(Attribute)介绍(四)
- 自定义组件之属性(Property)的性质(Attribute)介绍(三)
- 自定义组件之属性(Property)的性质(Attribute)介绍(四)
- 自定义组件之属性(Property)的性质(Attribute)介绍(一)
- 属性(Property)的性质(Attribute)介绍
- 属性(Attribute)资源的使用:自定义组件
- 属性(Attribute)资源使用自定义组件,并指定属性资源中定义的属性
- DOM之属性(attribute)和自定义对象属性(property)
- 【android 开发知识积累】——属性(Attribute)资源的使用和自定义View组件
- Android,xml组件属性style的使用,自定义适配器(含持有者模式)
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- [置顶] MMActionSheet介绍(自定义的UIActionSheet弹出框组件)
- Android 自定义View时使用TypedArray配置样式属性详细介绍
- Android定制组件之图文 (自定义组件图) + TableLayout属性
- .net程序员的盲点(二):两个“属性”引起的歧异-property和attribute的区别
- 22.使用Castle时,如何获取自定义类的单个属性的PropertyAttribute.Column
- Web开发之自定义前端组件经验介绍