自訂個人化的web複合控制項

來源:互聯網
上載者:User
web|控制項 .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,就這麼簡單。

好了,時間不多就先寫到這裡吧。



我們以後將繼續討論這個自訂控制項的擴充。不過聰明的你也應該能擴充出很多功能來了吧。


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。