文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页精文荟萃软件资讯 → 使用C#开发用户控制

使用C#开发用户控制

时间:2004/10/8 13:16:00来源:本站整理作者:蓝点我要评论(0)

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


 


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本