快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
定了,你不能直接设置该控件的属性。而是,你必 须使用反射机制来存取该控件的属性,然后再设置它的值。为了方便这一实现, 我编写了一个称为GetControlProperty的方法,它能够返回一个 PropertyDescriptor对象。这样以来,开发者就不需要再重复每一种属性映射下 的反射编码。下面是一个属性映射看起来的样子。

Public Property MailServer() As String
Get
Return ctlEmailContact.MailServer
End Get
Set(ByVal value As String)
GetControlProperty("MailServer"). _
SetValue(ctlEmailContact, value)
End Set
End Property

接下来,我需要建立的是你在图2中所看到的链接:“About EmailContact” 和一个到我自己的网站的链接。这些链接将执行我将在这个类中创建的方法。我 的第一个方法名为ShowAboutBox,它显示一个Windows表单以用作我的控件的一 个“关于”信息提示窗口。第二个方法称为LaunchWebSite,它执行一个对 System.Diagnostics.Process.Start的调用以便在一个浏览器实例中启动我的网 站。这两个方法的唯一的要求是:每一个签名都必须是一个“Sub”(在C#语言中 相应于一个void函数)并且不带参数。

注意,在这个灵敏标签示例中仅显示了两个属性和两个链接,但是借助于我 刚才所展示的技术,你完全可以提供你所需要的尽可以多的这些对象。然而,我 建议:不要使用太多的信息来重载一个灵敏标签。记住,你仅想把信息放于此以 便页面开发者立即使用,从而使得Web控件开发更具直观性。

现在,既然我已经创建了我的属性映射和行为方法,那么接下来,我将创建 灵敏标签的内容。其中,DesignerActionList类提供一个称为 GetSortedActionItems的重载函数。以后,一个设计器类将重载这个函数,并且 它会返回一个DesignerActionItemCollection(定义于 System.ComponentModel.Design命名空间)类型的对象。

这个属性重载的实现部分将创建一个新的DesignerActionItemCollection对 象并且使用四个不同的类(DesignerActionHeaderItem, DesignerActionPropertyItem,DesignerActionMethodItem和 DesignerActionTextItem)的实例来填充它。注意,这四个类都派生自抽象 DesignerActionItem类。下面,我将同你逐个展开讨论。

Dim o_Items As DesignerActionItemCollection = _
New DesignerActionItemCollection

这段代码使用DesignerActionHeaderItem类来创建灵敏标签分类头部,并且 在它们的构造器中接收分类名字。我将直接把这个类的实例插入到我刚才创建的 集合中。

o_Items.Add(New DesignerActionHeaderItem( _
"Appearance & Behavior"))

为每一种分类创建准确的标题是相当重要的,这不仅是因为它作为在灵敏标 签中作为该分类的头部相应的显示文本这一用途。早些时候,我创建了两个分别 称为MailServer和PreDefinedDisplay的属性映射;现在我想把它们添加到灵敏标 签中。为此,我将创建DesignerActionPropertyItem类的实例并且把它们添加到 集合中。

o_Items.Add(New DesignerActionPropertyItem( _
"MailServer", "Mail Server", _
"Appearance & Behavior"))

注意,该构造器接收三个参数:属性名,将出现在灵敏标签上的文本信息, 以及相应类型的准确标题(在DesignerActionHeaderItem的实例中定义)。

接下来,我想以相同的方式把行为链接添加到灵敏标签。注意,也仅仅是在 此时,我们使用了DesignerActionMethodItem类的实例。

o_Items.Add(New DesignerActionMethodItem( _
Me, "ShowAboutBox", "About EmailContact2", _
"Support", "Displays the about box.", True))

在此

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号