摘要: 前几天真的很郁闷,用了几年的台式机坏了。修了好久也没有修好,不过最终诊断出是显卡坏掉了。那么老的显卡现在想买也买不着了吧,索性放弃了吧,干脆买个本本。正好遇到元旦放假3天去市场看看,最终选中了IBM的T60.现在终于有电脑用了,可以继续写文章了,哈哈。 接下来,我会用前面一系列文章讲到的知识做一个简单的控件。 阅读全文
posted @ 2007-01-03 21:57 纶巾客 阅读(1061) 评论(2) 推荐(0) 编辑
摘要: 本系列的前面几篇文章讲解了如何来定义属性以及更有效的编辑属性,接下来我要讲一下控件属性的默认值。如果我们希望自己开发的控件更易于被其它开发者使用,那么提供默认值是非常值得的。 如果你为属性设定了默认值,那么当开发者修改了属性的值,这个值在Property Explorer中将会以粗体显示。VS为属性提供一个上下文菜单,允许程序员使用控件把值重置为默认值。当VS进行控件的串行化... 阅读全文
posted @ 2006-12-24 22:21 纶巾客 阅读(10753) 评论(11) 推荐(1) 编辑
摘要: 在上一篇文章,我介绍了如何编写模态对话框属性编辑器,这篇文章我将介绍如何编写下拉式属性编辑器。下拉式(DropDown)属性编辑器和模态对话框属性编辑器的不同之处就是,当你点击属性值修改的时候,模态对话框编辑器是弹出一个模态对话框,而下拉式属性编辑器却是在紧贴着属性值的地方显示一个下拉的控件。不知道大家注意到了没有,这里我说的是显示一个下拉的控件,而这个控件也是需要你去开发的,接下来我... 阅读全文
posted @ 2006-12-19 22:05 纶巾客 阅读(11238) 评论(9) 推荐(4) 编辑
摘要: 前几篇文章我们一直在讨论如何更方便的编辑复杂类型的属性,在这个过程中我介绍了类型转换器以及如何制作自己的类型转换器来实现属性值的串行化和实现子属性的编辑。对于Scope这种级别的复杂属性,一个类型转换器就已经足够了,但是对于更为复杂的属性,单单使用类型转换器已经不足以应付了,比如我们常用的Font属性。 在这种情况下,我们就需要提供更为复杂的编辑方式,比如属性编辑对话框,你... 阅读全文
posted @ 2006-12-18 20:28 纶巾客 阅读(12865) 评论(17) 推荐(2) 编辑
摘要: 准备开始学习Windows Workflow Fundation了,在网上找了一圈,搜罗了一些资源,希望对大家也有用。 这个是最全的了:http://searchvb.techtarget.com/generic/0,295582,sid8_gci1193920,00.html 这个网站上边有很多的例子和视频,非常适合初学者看:http://wf.netfx3.co... 阅读全文
posted @ 2006-12-15 22:28 纶巾客 阅读(2315) 评论(6) 推荐(0) 编辑
摘要: 前面的几篇文章中,我们给控件添加一个复杂的类型Scope,并且给它的类型提供的一个类型转换器,现在我们可以在属性浏览器中编辑它的值,并且它的值也被串行化的源代码里了。但是你有没有发现,在属性浏览器里编辑这个属性的值还是不太方便。因为属性只是“10,200”这种形式的,所以,你必须按照这种格式来修改,一旦格式错误就会引发异常,比如输入一个“10200”。我们期望这个属性的每一子属性都能够... 阅读全文
posted @ 2006-12-15 21:49 纶巾客 阅读(8981) 评论(19) 推荐(3) 编辑
摘要: 在上一篇文章,我为控件添加一个一个复杂属性,并且为这个属性的类型的编写了一个类型转换器,现在我们来看看这个类型转换器的代码,并解释一下这些代码的意义。 要实现一个类型转换器,我们必须要重写(override)四个方法: CanConvertFrom()――根据类型参数进行测试,判断是否能从这个类型转换成当前类型,在本例中我们只提供转换string和Instanc... 阅读全文
posted @ 2006-12-14 21:45 纶巾客 阅读(10408) 评论(5) 推荐(3) 编辑
摘要: 上一篇文章我已经介绍了TypeConverterAttribute元数据的作用,本文将通过代码向你展示具体的实现。在这个例子中,我要给控件添加一个复杂的属性,这个属性对这个控件没有什么功用,纯粹是为了演示,有些牵强附会了。 现在在前一篇文章中的创建的控件代码中添加一个Scope属性: [Browsable(true)] public... 阅读全文
posted @ 2006-12-11 22:55 纶巾客 阅读(13938) 评论(16) 推荐(0) 编辑
摘要: 前一篇文章介绍了常用的设计时Attribute。其中BrowsableAttribute,CategoryAttribute,DescriptionAttribute,DefaultPropertyAttribute,DefaultEventAttribute都是比较简单的,也是可有可无,但是为了提供更好的用户体验这些Attribute最好不要省掉,如果你对这些Attribute还不... 阅读全文
posted @ 2006-12-11 10:48 纶巾客 阅读(16023) 评论(12) 推荐(4) 编辑
摘要: 在前面的文章里我们制作了一个非常简单的控件。现在我们回过头来看看这些代码透露出什么信息。 这个类是直接从Control类派生出来的,自定义控件都是直接从Control类派生出来的。这个类定义了一个属性TextAlignment,用来控制文本在控件中显示的位置: [ Category("Alignment"), Descr... 阅读全文
posted @ 2006-12-06 22:50 纶巾客 阅读(17163) 评论(7) 推荐(5) 编辑