明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

自定義個(gè)性化的web復(fù)合控件

[摘要].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ò)展出很多功能來了吧。