使用c#研发用户控制_c#应用

2008-02-23 05:46:36来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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中文版下编译通过。


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: visual c#的sql server编程_c#应用

下一篇: vsiaul c#如何读取注册信息_c#应用