用c#实现时钟之数字时钟.doc_第1页
用c#实现时钟之数字时钟.doc_第2页
用c#实现时钟之数字时钟.doc_第3页
用c#实现时钟之数字时钟.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用c#实现时钟之数字时钟其实用C#实现时钟的功能并不是一件有难度的事情,网上也有很多相关的文章可以供大家参考。所谓仁者见仁,智者见智,不同的人对实现功能的方法也是不一样的,我个人觉得既然是要将自己的经验向大家分享,那么就要尽量解决在开发的过程中有可能遇到的疑问和问题。有的人自己接上传代码,甚至代码中连一句注释都没有,这样的文章还不如不要上传。别人就是因为不会才找资料的,什么注释都没有让别人如何看懂,所以上传的东西中如果涉及到代码,就要尽量将注释写清楚,让别人尽可能的看懂自己写的代码,尽量帮到别人。这仅代表个人看法,如有说的不周到的地方还请大家多多包涵。时钟无非有两种,一种是液晶那样的带有数字的是时钟,另一种就是带有指针的时钟。本文主要讲的是前一种。其他的不多说了,直接进入主题吧。先讲一下思路:首先就是获取系统当前时间,然后分别获得系统当前时间的年、月、日、时、分、秒部分,再将年、月、日、时、分、秒分割成单一的数字,根据数字来绑定图片,(如果嫌绑定图片麻烦的话,也可以选择使用label控件来显示时间)大致思路就是这样的了,下面看具体实现。先讲一下图片路径的问题:在我们做项目的时候或多或少都会用到图片了,一般我们在初学C# 的时候都是直接导入图片的,这样运行的时候是没有问题的,问题是当图片的路径改变了或者图片被误删了或者我们的项目改变了位置的时候(例如从一台电脑移动到另一台电脑的时候),这样程序在运行的时候肯定会出现错误。要解决这样的问题怎么办了?有的人就会想到使用相对路径。这是没有错的,因为这正是解决问题的方法。那么,在C#中如何使用图片的相对路径呢?中就要用到Application.StartupPath了。Application.StartupPath是返回当前项目的debug文件夹路径,如果你不太清楚可以再调试的时候用MessageBox show出来看一下就知道了。所以讲图片放在debug文件夹下,然后在Application.StartupPath的后面加上图片的名称就行了,例如:Application.StartupPath + “123.jpg”.这样就解决了图片路径的问题了。以下是部分代码:/电子钟 private void GetTime() /* *获取系统当前时间 *在创建DaeTime对象的时候,不要使用DateTime time = new Datetime() *new DateTime()是得到指定的日期,这样得到时分秒都是0 */ DateTime time = DateTime.Now; /* * 获取系统当前时间中的小时部分 * 变量说明: * hour是当前系统中的小时部分,数位为2位 * h1是小时部分的第一位,也就是十位,默认为0 * h2是小时部分的第二位,也就是各位,默认为hour * if条件说明: * 如果系统当前时间中的小时部分大于或等于10,也就是到达或超过10点 * 就将hour除以10,得到hour的十位;然后再将hour对10求余,得到hour的个位 * 注意: * 在c#中,两个int类型的数相除,得到的结果还是int,不会带有小数 * * 以下对分钟与秒钟部分的操作也是同样的原理,就不在多作介绍了 */ int hour = time.Hour; int h1 = 0; int h2 = hour; ; if (hour = 10) h1 = hour / 10; h2 = hour % 10; /参照对小时部分的操作 int minute = time.Minute; int m1 = 0; int m2 = minute; if (minute = 10) m1 = minute / 10; m2 = minute % 10; /参照对小时部分的操作 int second = time.Second; int s1 = 0; int s2 = second; if (second = 10) s1 = second / 10; s2 = second % 10; /对结果进行拼接,并让label显示拼接后的结果 this.labelhms.Text=string.Format(01:23:45,h1,h2,m1,m2,s1,s2); /* *在这里我没有用到图片,而是直接用label控件显示的时间 *如果要想外观美观一点可以使用图片。详情见附录。 * 该方法被timer控件的Tick时事件调用 * 也可以将该方法内的代码全部写在timer控件的Tick事件中 */ 在窗体的Laod事件中启动计时器:private void Form1_Load(object sender, EventArgs e) this.timer1.Start();/启动计时器 附录:pictureBox图片控件一共8个,从0到9再加上间隔图片(间隔图片用来将时分秒分开,一般为冒号,这个可以根据个人爱好自定义)一共11张,宽度和高度一致,图片的名称可以自定义。建议使用图片的相对路径,在debug文件夹下新建文件夹inages,将做好的图片放入inages文件夹中。/*Bitmap(String path)函数时指定路径下的图片转换成位图* 告诉编译器不要将”当做转义字符*/绑定图片:this.pictureBox1.Image = new Bitmap(Application.StartupPath + imagesg + h1 + .jpg);/绑定小时的第一位数字的图片this.pictureBox2.Image = new Bitmap(Application.StartupPath + imagesg + h2 + .jpg);/绑定小时的第二位数字的图片this.pictureBox3.Image = new Bitmap(Application.StartupPath + imagesgm.jpg);/时钟与分钟之间的间隔符号是不会改变的this.pictureBox4.Image = new Bitmap(Application.StartupPath + imagesg + m1 + .jpg);/绑定分钟的第一位数字的图片this.pictureBox5.Image = new Bitmap(Application.StartupPath + imagesg + m2 + .jpg);/绑定分钟的第二位数字的图片this.pictureBox6.Image = new Bitmap(Application.StartupPath + imagesgm.jpg);/分钟与秒钟之间的间隔符号是不会改变的this.pictureBox7.Image = new Bitmap(Application.StartupPath + imagesg + s1 + .jpg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论