自定義個(gè)性化的web復(fù)合控件
發(fā)表時(shí)間:2024-02-26 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要].net為大家提供了各種各樣的控件,也足夠的豐富多彩。但是有時(shí)候你是不是想開發(fā)一些自己的控件以提高開發(fā)效率,或者實(shí)現(xiàn)一些特殊的功能呢。下面我講述一下,建立一個(gè)最基本的web復(fù)合控件的過程。首先新建一個(gè)C#類庫項(xiàng)目,取名叫MyControl吧。刪除默認(rèn)的類文件class1,然后建立我們自己的類文件M...
.net為大家提供了各種各樣的控件,也足夠的豐富多彩。但是有時(shí)候你是不是想開發(fā)一些自己的控件以提高開發(fā)效率,或者實(shí)現(xiàn)一些特殊的功能呢。
下面我講述一下,建立一個(gè)最基本的web復(fù)合控件的過程。
首先新建一個(gè)C#類庫項(xiàng)目,取名叫MyControl吧。刪除默認(rèn)的類文件class1,然后建立我們自己的類文件MyControl.cs。
現(xiàn)在我們向其中添加密碼。
在剛生成的代碼上先把它修改成這樣子
我們將使用以下引用:
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
下面我們將重寫下面兩個(gè)函數(shù),這都是必須的
protected override void Render(HtmlTextWriter writer)
protected override void CreateChildControls()
修改第一個(gè)函數(shù)為下面代碼
protected override void Render(HtmlTextWriter writer)
{
this.CreateChildControls();
base.Render (writer);
}
修改第二個(gè)函數(shù)為下面代碼
protected override void CreateChildControls()
{
// 清除現(xiàn)有的子控件及其 ViewState
this.Controls.Clear();
this.ClearChildViewState();
// 生成控件樹
// 生成環(huán)境表格(一行,兩個(gè)單元格)
Table myTable = new Table();
//build the table row生成表格中的行
TableRow row = new TableRow();
myTable.Rows.Add(row);
// 生成單元格
TableCell myCell = new TableCell();
//用來生成鏈接按鈕導(dǎo)航條的代碼。每個(gè)按鈕都顯示有一個(gè) Webdings 字符,可以根據(jù)需//禁用,并被綁定到內(nèi)部的 Click 事件處理程序。
LinkButton myLinkButton = new LinkButton();
myLinkButton.ID = "MyLinkButton";
myLinkButton.Click += new EventHandler(myLinkButton_Click);
myLinkButton.Font.Name = "宋體";
myLinkButton.ToolTip = "好玄。";
myLinkButton.Text = "請(qǐng)點(diǎn)我";
myCell.Controls.Add(myLinkButton);
row.Cells.Add(myCell);
Controls.Add(t);
}
下面寫你自己的事件的方法吧
private void myLinkButton_Click(object sender,System.EventArgs e)
{
Page.Response.Write("想干點(diǎn)什么就寫點(diǎn)什么吧,就這么簡(jiǎn)單!");
}
下面編譯一下吧,然后點(diǎn)工具—》添加/移除工具箱項(xiàng)
然后瀏覽到你編譯生成的dll,現(xiàn)在在工具箱里你看到了什么?
把myControl拖到你自己的webForm上看看效果吧。
OK,就這么簡(jiǎn)單。
好了,時(shí)間不多就先寫到這里吧。
我們以后將繼續(xù)討論這個(gè)自定義控件的擴(kuò)展。不過聰明的你也應(yīng)該能擴(kuò)展出很多功能來了吧。