分类:
2007-01-22 17:40:51
很多情况下,我们并非一定要从零开始创建控件。如果只是想简单地扩展现有控件的功能,我们可以象继承其他类那样通过继承一个现有的控件得到新的控件。
例如,也许我们希望维持按钮被点击的次数,这样的按钮在许多应用程序中都非常有用,但不幸的是,web Button控件没有提供这种功能。
为了克服这种按钮控件在功能方面的不足,我们可以从System.Web.UI.WebControls.Button控件中派生生成新的定制控件,下面分别是用C#和VB.NET生成的控件的代码:
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; namespace CustomControls { // 从System.Web.UI.WebControls.Button控件中派生的定制控件 public class CountedButton : System.Web.UI.WebControls.Button { // 构造器初始化ViewState变量 public CountedButton( ) { this.Text = "Click me"; ViewState["Count"] = 0; } //存取ViewState中的Count值 public int Count { get { return (int) ViewState["Count"]; } set { ViewState["Count"] = value; } } // 覆盖OnClick,增加count,更新按钮文本,然后调用基础类的方法 protected override void OnClick(EventArgs e) { ViewState["Count"] = ((int)ViewState["Count"]) + 1; this.Text = ViewState["Count"] + " clicks"; base.OnClick(e); } } } |