在前几节中,我们演示了怎样进行用户控件开发,大家可能对用户控件中的一些属性的基本设置还存在疑惑,这节我们共同学习下用户控件的基本属性设置。
所谓基本属性设置,就是我们常常看到控件在属性设计器中可以对属性进行设置,有些属性在设计中具有默认值,有些在属性设计器中会弹出一个编辑器,供用户选择值。
这节内容
1.简单数据类型的属性设置
2.复杂数据类型的属性设置
1.简单数据类型的属性设置
简单数据类型,就是.NET中常见的类型,例如字符串,整型,浮动型,这些基本数据类型。
我们看下这些基本属性
Browsable:指示该属性是否可以在属性设计器中显示,如果TRUE则显示,FALSE则不显示
Category:表示属性的分类
Description:表示属性的描述信息
DefaultValue:表示属性的默认值。
下面我们定义了一个用户控件,并自定义了一个属性SecondText,代码如下:
public partial class UCLabel : UserControl { public UCLabel() { InitializeComponent(); } private string _sText="Helloworld";//初始值 /// <summary> /// Browsable表示该属性是否显示在设计器中,TRUE为显示 /// </summary> /// Description表示对属性的描述信息 /// Category表示该属性在属性设计器中的分类 [Browsable(true)] [Category("文本")] [Description("第二文本")] [DefaultValue("新浪微博")]//默认值 public string SecondText { get { return _sText; } set { _sText = value; } } }
从上面的图片中,我们可以看到各个属性在属性设计器中对应的项。
在这里有一点要说明,我们把SecondText的初始值设为HelloWorld, 把它的默认值设为新浪微博, 我们说下初始值和默认值的区别
1.初始值是属性定义时候赋的值,当把用户控件拖到窗体上后,默认情况下显示的初始值。
2.一个属性的默认值是非加粗显示,其他值都是加粗显示的。
3.如果想恢复某个属性的默认值,只需要右键单击该属性,选择重置,就可以恢复属性的默认值。
2. 复杂属性的基本设置
复杂类型主要是指引用类型,例如我们自定义的类,或者系统原有的类。复杂属性的设置主要是默认值的设置。
复杂属性的默认值设置不能再使用DefaultValue属性,需要使用Reset方法.
如果想判断当前属性是否使用的是默认值,可以使用ShouldSerialize属性名来判断,当然,这两个方法都需要我们自己来实现。
如下代码定义了一个颜色复杂属性
//定义属性的初始值为红色 private Color _sColor = Color.Red; [Category("颜色")] [Description("第二颜色")] public Color SecondColor { get { return _sColor; } set { _sColor = value; } } /// <summary> /// 用于判断当前属性是否在使用默认值 /// </summary> /// <returns></returns> public bool ShouldSerializeSecondColor() { return _sColor != Color.Blue; } /// <summary> /// 用于设置属性的默认值为蓝色 /// </summary> public void ResetSecondColor() { _sColor = Color.Blue; }
这样我们在属性设计器中就可以通过重置命令,设置默认颜色为蓝色。
这节我们就先写到这里,如果还对属性有更深入的了解,可以参照MSDN
http://msdn.microsoft.com/zh-cn/library/53b8022e(v=vs.80).aspx
http://msdn.microsoft.com/zh-cn/library/ms171724(v=vs.90).aspx