Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3351724
  • 博文数量: 530
  • 博客积分: 13360
  • 博客等级: 上将
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-13 13:32
文章分类

全部博文(530)

文章存档

2017年(1)

2015年(2)

2013年(24)

2012年(20)

2011年(97)

2010年(240)

2009年(117)

2008年(12)

2007年(8)

2006年(9)

分类:

2007-01-22 17:40:51

创建派生控件

很多情况下,我们并非一定要从零开始创建控件。如果只是想简单地扩展现有控件的功能,我们可以象继承其他类那样通过继承一个现有的控件得到新的控件。

例如,也许我们希望维持按钮被点击的次数,这样的按钮在许多应用程序中都非常有用,但不幸的是,web Button控件没有提供这种功能。

为了克服这种按钮控件在功能方面的不足,我们可以从System.Web.UI.WebControls.Button控件中派生生成新的定制控件,下面分别是用C#和VB.NET生成的控件的代码:

用C#实现的CountedButton

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);
}
}
}

 

阅读(1536) | 评论(0) | 转发(0) |
0

上一篇:定制控件入门

下一篇:界面设计原则

给主人留下些什么吧!~~