程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用C#開發用戶控制

使用C#開發用戶控制

編輯:關於C語言
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中文版下編譯通過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved