您的位置:首页 > 其它

.NET Compact Framework1.0下自定义控件的编写4-论CF与完整版.NET的异同

2009-09-23 09:24 344 查看
完整版.NET下对库做了修改不需要重新配置库的调用程序,但如果需要更新图标的话则需重新配置(所谓“配置”即将控件从工具栏中删除后又重新加入)。

l 精简版不支持环境变量。

l 注意在完整版中,如果自定义控件控件希望屏蔽一个基类属性,使它彻底不可见(即在属性浏览器和智能感知器中都看不到),对该属性同时使用EditorBrowable特性和Browable特性即可。但在CF中,要达到同样的效果,往往是将这两个特性分开使用的,即将Browable特性施加于控件的设计期版本中的属性,使其在属性浏览器中不可见,而EditorBrowable特性应该施加于控件的运行期版本的相应属性,才会使它在智能感知中不可见。

l 估计在精简版中,Form窗体没有Font属性。实验现象:重载了基类的OnParentChanged方法,在其中调用this.BackColor=Parent.BackColor,this.Font=Parent.Font,BackColor可以达到预期效果,而Font却造成StackOverflowException;分析:估计Form没有Font属性,或者它的属性始终是(“宋体”,9pt),因为如上OnParentChanged函数,即使在设计期修改了控件的Font,且在InitializeComponent中看到了这种修改,运行时也没有效果,所以,对于Font,自定义控件一定要有默认值。

l CF似乎不支持UITypeEditor。

l 一旦窗体添加了一个实现了ISupportInitialize接口的组件,则窗体的InitializeComponent方法中将在首尾自动加入对该组件实现的ISupportInitialize接口中的BeginInit和EndInit方法的调用。(很可惜CF不支持ISupportInitialize接口)

l 精简版.NET下不支持ISupportInitialize接口,而有时对属性Setter的调用次序又必须人为控制,如何解决这个问题?

见文章2。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yejun8214/archive/2008/03/24/2214771.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: