探讨ASP.NET 2.0中的Web控件改进技术
l.BorderWidth=Unit.Pixel(2) ourControl.BorderColor=Drawing.Color.DarkRed ourControl.HeadingStyle.Font.Name="arial" ourControl.HeadingStyle.Font.Bold=True ourControl.HeadingStyle.Font.Size=FontUnit.Large 接下来,我将创建一个称为MonochromeFormat的类并且执行相同的步骤—仅 在这次,我把风格属性设置为black和white以相应于一种“monochrome”格式。 源码文件中的列表3展示了这个类的完整代码。 最后,我必须创建NoFormat类。这个类遵循与前两个相同的设计;但是,我不 是把风格属性值设置成各种颜色及字体,而是在所有的风格属性上调用Reset方 法。这可以把所有的风格值设置为它们的缺省状态。 顺便说一下,既然我的EmailContact控件派生自CompositeControl类,而它 又派生自WebControl类;所以,我还可以在我的控件的类级上取得风格属性。这 意味着:我可以拥有BackColor,ForeColor等属性,而且可以直接从我的控件中 存取它们而不必通过一个属性来实现。然而,为了复位这些风格值,我不是直接 从我的控件类取得一个Reset方法,而是由WebControl类为我提供了一个 ControlStyle属性,它用作相应于所有的容器风格值的入口点。注意:在复位控 件的外观时,我还把Height属性设置为一个具有400个像素的缺省值。下面是完 整的类:
现在,既然我已经创建了我想实现的所有格式类,那么,接下来,我需要对 它们做一些实际的操作。为此,我将再转回到控件设计器类—实现一些重载。我 需要重载的属性称为AutoFormats,它返回一个System.Web.UI.Design命名空间 中的DesignerAutoFormatCollection类型的对象。 就象在灵敏标签和模板编辑部分一样,我将实例化的对象(为了通过属性返回 之)是在类级上声明的,因为ASP.NET基础结构会负责对它进行缓冲处理。
然后,在属性重载实现中,我可以测试对象变量是否是一个null值。现在, 我们只需简单地使用我以前创建的每一个格式类的实例来填充o_AutoFormats集 合对象。
如果我重新编译并再次测试该控件,我将看到一个称为“Auto Format…”的 链接被添加到灵敏标签的顶部。如果以前不存在灵敏标签,那么Visual Studio 将自动地使用“Auto Format…”链接在其中创建一个。你将还注意到一个 “Auto Format…”链接出现在属性浏览器的底部。 如果我点击任何一个链接,我将看到如图4所示的内容。选择列表中的任何一 种格式从而在预览窗口中改变它;然后点击OK把此设置提交给Web表单设计界面下 的控件。 图4:自动格式化屏幕 现 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |