快速业务通道

探讨ASP.NET 2.0中的Web控件改进技术

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
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个像素的缺省值。下面是完 整的类:

Public Class NoFormat
Inherits DesignerAutoFormat
Public Sub New()
MyBase.New("No Format")
End Sub
Public Overrides Sub Apply(ByVal control _
As System.Web.UI.Control)
Dim ourControl As EmailContact2 = CType(control, _
EmailContact2)
If ourControl IsNot Nothing Then
ourControl.ControlStyle.Reset()
ourControl.HeadingStyle.Reset()
ourControl.CaptionStyle.Reset()
ourControl.FieldStyle.Reset()
ourControl.ReadonlyFieldStyle.Reset()
ourControl.ButtonStyle.Reset()
ourControl.Height = Unit.Pixel(400)
End If
End Sub
End Class

现在,既然我已经创建了我想实现的所有格式类,那么,接下来,我需要对 它们做一些实际的操作。为此,我将再转回到控件设计器类—实现一些重载。我 需要重载的属性称为AutoFormats,它返回一个System.Web.UI.Design命名空间 中的DesignerAutoFormatCollection类型的对象。

就象在灵敏标签和模板编辑部分一样,我将实例化的对象(为了通过属性返回 之)是在类级上声明的,因为ASP.NET基础结构会负责对它进行缓冲处理。

Private o_AutoFormats As _
DesignerAutoFormatCollection

然后,在属性重载实现中,我可以测试对象变量是否是一个null值。现在, 我们只需简单地使用我以前创建的每一个格式类的实例来填充o_AutoFormats集 合对象。

Public Overrides ReadOnly Property AutoFormats() _
As DesignerAutoFormatCollection
Get
If o_AutoFormats Is Nothing Then
o_AutoFormats = New DesignerAutoFormatCollection
With o_AutoFormats
.Add(New NoFormat)
.Add(New MonochromeFormat)
.Add(New ColorfulFormat)
End With
End If
Return o_AutoFormats
End Get
End Property

如果我重新编译并再次测试该控件,我将看到一个称为“Auto Format…”的 链接被添加到灵敏标签的顶部。如果以前不存在灵敏标签,那么Visual Studio 将自动地使用“Auto Format…”链接在其中创建一个。你将还注意到一个 “Auto Format…”链接出现在属性浏览器的底部。

如果我点击任何一个链接,我将看到如图4所示的内容。选择列表中的任何一 种格式从而在预览窗口中改变它;然后点击OK把此设置提交给Web表单设计界面下 的控件。

探讨ASP.NET 2.0中的Web控件改进技术

图4:自动格式化屏幕

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号