自定义个性化的web复合控件
2004-11-12 15:22
387 查看
作者:feic
.net为大家提供了各种各样的控件,也足够的丰富多彩。但是有时候你是不是想开发一些自己的控件以提高开发效率,或者实现一些特殊的功能呢。
下面我讲述一下,建立一个最基本的web复合控件的过程。
首先新建一个C#类库项目,取名叫MyControl吧。删除默认的类文件class1,然后建立我们自己的类文件MyControl.cs。
现在我们向其中添加密码。
在刚生成的代码上先把它修改成这样子
我们将使用以下引用:
保证我们的MyContro是从WebControl继承的。
public class MyControl:WebControl
下面我们将重写下面两个函数,这都是必须的
protected override void Render(HtmlTextWriter writer)
protected override void CreateChildControls()
修改第一个函数为下面代码
修改第二个函数为下面代码
//用来生成链接按钮导航条的代码。每个按钮都显示有一个 Webdings 字符,可以根据需//禁用,并被绑定到内部的 Click 事件处理程序。
下面写你自己的事件的方法吧
下面编译一下吧,然后点工具—》添加/移除工具箱项
然后浏览到你编译生成的dll,现在在工具箱里你看到了什么?
把myControl拖到你自己的webForm上看看效果吧。
OK,就这么简单。
好了,时间不多就先写到这里吧。
我们以后将继续讨论这个自定义控件的扩展。不过聪明的你也应该能扩展出很多功能来了吧。
.net为大家提供了各种各样的控件,也足够的丰富多彩。但是有时候你是不是想开发一些自己的控件以提高开发效率,或者实现一些特殊的功能呢。
下面我讲述一下,建立一个最基本的web复合控件的过程。
首先新建一个C#类库项目,取名叫MyControl吧。删除默认的类文件class1,然后建立我们自己的类文件MyControl.cs。
现在我们向其中添加密码。
在刚生成的代码上先把它修改成这样子
我们将使用以下引用:
using System; using System.IO; using System.Drawing; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; |
public class MyControl:WebControl
下面我们将重写下面两个函数,这都是必须的
protected override void Render(HtmlTextWriter writer)
protected override void CreateChildControls()
修改第一个函数为下面代码
protected override void Render(HtmlTextWriter writer) { this.CreateChildControls(); base.Render (writer); } |
protected override void CreateChildControls() { // 清除现有的子控件及其 ViewState this.Controls.Clear(); this.ClearChildViewState(); // 生成控件树 // 生成环境表格(一行,两个单元格) Table myTable = new Table(); //build the table row生成表格中的行 TableRow row = new TableRow(); myTable.Rows.Add(row); // 生成单元格 TableCell myCell = new TableCell(); |
LinkButton myLinkButton = new LinkButton(); |
myLinkButton.ID = "MyLinkButton"; myLinkButton.Click += new EventHandler(myLinkButton_Click); myLinkButton.Font.Name = "宋体"; myLinkButton.ToolTip = "好玄啊!"; myLinkButton.Text = "请点我"; myCell.Controls.Add(myLinkButton); row.Cells.Add(myCell); Controls.Add(t); } |
private void myLinkButton_Click(object sender,System.EventArgs e) { Page.Response.Write("想干点什么就写点什么吧,就这么简单!"); } |
然后浏览到你编译生成的dll,现在在工具箱里你看到了什么?
把myControl拖到你自己的webForm上看看效果吧。
OK,就这么简单。
好了,时间不多就先写到这里吧。
我们以后将继续讨论这个自定义控件的扩展。不过聪明的你也应该能扩展出很多功能来了吧。
相关文章推荐
- Borland要出Dlephi 2005!Delphi vs C#(老话题:))
- 人生是在游戏 游戏不是人生
- 活用C#截取计算机屏幕
- Hello World —— WebSphere Portal V5 最简单的 portlet:第 1 部分,创建和部署
- 工作流模型分析
- 电视台网络业务规划概要
- Portlet API参考实现的秘密
- 概述:WEB应用程序的测试与优化
- 計算程序的執行時間
- 工作流参考模型点评
- Windows自启动程序十大藏身之所
- MSA的总览概述
- 软件考试考纲
- 工作流引擎的三种定位
- 工作流之大局势
- 用C++编写的基于双向链表的CPtrArray类
- 客户端调用第三方remoting 服务程序的n中方式,VB.NET 晚期邦定还真方便
- 历史上三大骑士团的崛起与演变
- 使用工作流开发应用程序
- 业务流程管理:过去,现在,未来