国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用C#開發用戶控制(轉)

2024-07-21 02:25:07
字體:
來源:轉載
供稿:網友
使用c#開發用戶控制

西南通信研究所 汪漢波  
01-9-7 下午 01:21:57
--------------------------------------------------------------------------------
c#是微軟推出的新一代編程語言,用于開發.net框架下的應用。c#從c/c++演變而來,但是比c/c++更加簡單、安全。下面,我們通過用c#開發一個百分比控制來演示一下它的功能。
首先,準備好開發環境,啟動visual studio.net beta2,選擇菜單文件->新建->項目,項目類型選擇visual c#項目,模板選擇windows控件庫,名稱輸入percent,按確定,建立一個項目。
切換到percent.cs[設計]頁面,在解決方案資源管理器中將usercontrol1.cs改為percent.cs。從工具箱中拖一個label控制到設計面板上,設置該label的屬性:name: lbpercent,backcolor: transparent,text: 100%,并拖拉label的邊框,使其大小能剛好顯示出text。右鍵在設計面板上單擊,從彈出菜單中選擇查看代碼,打開代碼編輯頁面。
可以看到名字空間為percent,將光標移動到public class percent : system.windows.forms.usercontrol以下,輸入下面幾行:
private int icurpercent = 0;
private color clpercent = color.blue;
private color cltext = color.black;
以上定義并初始化了幾個私有變量,icurpercent表示當前的百分比進度,clpercent為進度的顏色,cltext為中間顯示的百分比文本的顏色。
本控制擁有三個屬性,分別設置進度條和文字的顯示顏色,以及當前進度。還定義了一個onpercentchange事件,在百分比改變時觸發該事件。
在protected override void dispose( bool disposing )后面添加以下內容:
public delegate void percentchangehandler(int currentpercent);
public event percentchangehandler onpercentchange;

public int currentpercent
{
get
{
return icurpercent;
}
set
{
if ((value <= 100) && (value >= 0))
{
icurpercent = value;
if (onpercentchange != null)
onpercentchange(icurpercent);
this.invalidate();
}
}
}

public color percentbackcolor
{
get
{
return clpercent;
}
set
{
clpercent = value;
this.invalidate();
}
}

public color percenttextcolor
{
get
{
return cltext;
}
set
{
cltext = value;
this.invalidate();
}
}
以上首先定義了事件,并在百分比改變時觸發。然后是三個屬性的實現。

下面,需要在paint事件里改變percent控制的顯示狀態。切換到設計頁面,選擇整個設計面板,在屬性視圖中將光標移動到paint,按回車,代碼頁面里就自動為paint事件建立了框架,其中其一個參數為system.windows.forms.painteventargs e,可以用這個參數干很多事情。先輸入以下畫百分比控制邊界的代碼:
pen penblack = new pen(color.black, 1);
point ptstart = new point(0, 0);
point ptend = new point(this.width - 1, 0);
e.graphics.drawline(penblack, ptstart, ptend);
ptstart = new point(0, 0);
ptend = new point(0, this.height);
e.graphics.drawline(penblack, ptstart, ptend);

pen penwhite = new pen(color.white, 1);
ptstart = new point(this.width - 1, 0);
ptend = new point(this.width - 1, this.height);
e.graphics.drawline(penwhite, ptstart, ptend);
ptstart = new point(0, this.height - 1);
ptend = new point(this.width, this.height - 1);
e.graphics.drawline(penwhite, ptstart, ptend);

solidbrush brushfill = new solidbrush(percentbackcolor);
rectangle rcfill = new rectangle(2, 2, icurpercent * (this.width - 3) / 100, this.height - 3);
e.graphics.fillrectangle(brushfill, rcfill);

lbpercent.left = this.width / 2 - lbpercent.width / 2;
lbpercent.top = this.height / 2 - lbpercent.height / 2;
lbpercent.text = icurpercent.tostring() + "%";
lbpercent.forecolor = percenttextcolor;

在控制大小發生變化時也應該刷新,在設計頁面,光標移動到resize,回車,在resize事件中寫下:this.invalidate();
這樣,這個百分比控制就編完了。下面,我們在編寫一個測試程序來測試這個控制。選擇菜單:文件->添加項目->新建項目,項目類型選擇visual c#項目,模板選擇windows應用程序,取名為testpercent,按確定,建立一個windows應用程序框架。由于是添加了一個新項目,因此,解決方案資源管理器中就有了兩個項目:percent和testpercent。鼠標在testpercent上單擊右鍵,從彈出菜單中選擇“添加引用”,切換到“項目”頁面,項目名稱應為“percent”,雙擊該項目名稱,把它加到選定的組件里面,按確定。這樣,percent組件就加到測試工程里了。用過vc的#import指令或者vb的引用的人對這個操作也許會感覺比較親切。
從工具箱中找到percent控制,將其拖到測試工程的設計面板上擺好,再從工具箱里拖一個button和一個timer放好。雙擊button,在其事件中寫下:timer1.enabled = true; 再回到設計面板,雙擊timer,在其事件中寫下:percent1.currentpercent = percent1.currentpercent + 1;將焦點移到用戶控制percent1上,找到事件onpercentchange,回車,在程序框架中寫下:this.text = currentpercent.tostring(); 這樣,測試程序就完成了。
下面運行程序,將testpercent設為啟動項目,運行,按下button1,可以看到進度增加的同時,窗口標題也在發生變化。
通過這個簡單的用戶控制的編寫,我們可以體會到c#編程的簡便性,對其開發環境有個基本的了解。該控制也可以很容易地被其他開發工具,比如visual basic.net使用。
以上程序在c366, 128mb, windows2000 advanced server sp2,visual studio.net beta2中文版下編譯通過。

商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖远县| 策勒县| 宁阳县| 平陆县| 龙岩市| 宁乡县| 上饶县| 荥经县| 务川| 抚宁县| 宁波市| 余干县| 兴化市| 唐山市| 平定县| 临泽县| 鄄城县| 鄂伦春自治旗| 佛坪县| 延川县| 临湘市| 苍梧县| 呼玛县| 龙门县| 杭锦后旗| 镇赉县| 石楼县| 彭山县| 闵行区| 叶城县| 三门峡市| 宣恩县| 分宜县| 崇仁县| 临汾市| 新源县| 岳普湖县| 杨浦区| 开鲁县| 永清县| 依兰县|