自定义个性化的web复合控件

本文介绍了在.NET中创建基本Web复合控件的过程。先新建C#类库项目,添加自定义类文件,引用必要命名空间,让类继承WebControl,重写Render和CreateChildControls函数,编写事件方法,编译后将生成的dll添加到工具箱,最后可将控件拖到webForm查看效果,后续还将讨论扩展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.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;

    

     保证我们的MyContro是从WebControl继承的。

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

             

//用来生成链接按钮导航条的代码。每个按钮都显示有一个 Webdings 字符,可以根据需//禁用,并被绑定到内部的 Click 事件处理程序。

              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,就这么简单。

好了,时间不多就先写到这里吧。

 

我们以后将继续讨论这个自定义控件的扩展。不过聪明的你也应该能扩展出很多功能来了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值