举例说明:
Customer Component有个Age Property,声明如下
[Description("Customer's Age"), DefaultValue(20)]
public int Age
{
get { return _age; }
set { _age = value; }
}
有个窗体Form1,在Form1上贴有一个Customer类型的customer1,在设计时对Age设值为20,Form1的InitializeComponent()为
private void InitializeComponent()
{
this.customer1 = new Components.Customer();
//
// customer1
//
this.customer1.Address = null;
this.customer1.CreateTime = new System.DateTime(((long)(0)));
this.customer1.Id = null;
this.customer1.Sex = null;
}
如果在设计时对Age设值为40,Form1的InitializeComponent()为
private void InitializeComponent()
{
this.customer1 = new Components.Customer();
//
// customer1
//
this.customer1.Address = null;
this.customer1.Age = 40;
this.customer1.CreateTime = new System.DateTime(((long)(0)));
this.customer1.Id = null;
this.customer1.Sex = null;
}
第二种情况比第一种多了句this.customer1.Age = 40;
本来这章准备讲Component Designer的,但是在第3章的评论中chnking朋友问我,用户自定义Property Editor中如何调试的问题,我原来在开发Component的过程都是用MessageBox来弹出信息,但是lichdr提出了个更好的办法,监视进程,这样就能对用户自定义的Property Editor进行调试,我在vs 6.0里用这种方法调试过,但是在.net环境上我从来我想到过,我想很多朋友在开发过程也可能会遇到这样的问题,至少我是遇到了,而且走了很多的弯路,所以把它作为单独的一章进行讲解下,在这里再次谢谢lichdr。
下面我用第三章的源代码进行演示下:源代码下载
先打开一个vs 2005的IDE(IDE1),在IDE1中打开WindowsApplication9解决方案,在Components.Demo3.cs中设置如下断点