热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CnClock桌面时钟-Winform小程序开发

这篇文章主要介绍CnClock桌面时钟-Winform小程序开发
过年回家也上不了网,前两天闲得无聊就自己研究了一个小程序。先看一下程序的界面:

界面一:

这个小程序大概用了一天多的时间编写出来,功能比较简单,该程序具有的功能:

1.可以显示日期,当前时间,星期,农历。

2.程序可以吸附在桌面上,实现嵌入桌面的效果。

3.可以设置程序为开机自启动。

下面贴出部分主要代码:

//设置吸附桌面功能 
 private void 吸附桌面ToolStripMenuItem_CheckStateChanged(object sender, EventArgs e) 
 ...{ 
 //默认为勾选状态(吸附桌面),点击后即触发该事件,“吸附桌面”项勾掉了,则变量ischecked为!ischecked(false), 
 //则可以移动窗体。再次点击该菜单项,ischecked为!ischecked(true),则不能移动窗体。 
 //checkstate发生变化 
 ischecked = !ischecked; 
 if (ischecked == true) 
 ...{ 
 勾选但不移动的处理#region 勾选但不移动的处理(如果用户勾选了该项,但是并没有移动程序的位置,则进行该项判断)
 //2012年1月31日0:27:44 解决思路: 
 //先判断ini文件是否存在,如果是第一次启动程序或ini文件丢失,则无ini文件, 
 //则没有上次保存的ini配置信息,不进行读取操作,否则 
 //先从ini文件中读取上次设定的x,y的坐标值,作为old_x,old_y。再将新的坐标值与旧的 
 //坐标值进行比较,如果窗体移动了,则比较后不同,进行写入ini操作,否则不写入 
 
 if (File.Exists(pathbase + "CnClock.ini")) 
 ...{ 
 try 
 ...{ 
 StreamReader sr = new StreamReader(pathbase + "CnClock.ini", Encoding.GetEncoding("gb2312")); 
 if (sr.Peek() >= 0) 
 ...{ 
 old_x = Convert.ToInt32(sr.ReadLine()); 
 old_y = Convert.ToInt32(sr.ReadLine()); 
 } 
 sr.Close(); 
 } 
 catch (Exception ex) 
 ...{ 
 MessageBox.Show(ex.Message.ToString()); 
 } 
 } 
 #endregion 
 //2012年1月30日22:34:43,又想到一个新问题:如果用户勾选了“吸附桌面”项后,没有移动该窗体的位置, 
 //这种情况下是否要判断一下新位置与原位置是否相同??? 经考虑,需设定! 
 //2012年1月31日0:21:04 设置完成,代码见 #勾选但不移动的处理 部分 
 
 //什么时候才会执行下面这句代码“yidOng= false;” 呢? 
 //分析:在form_load时不会执行,只有当用户移动窗体后,再选中"吸附桌面"项后才会执行 
 //这句代码,所以这里才是控制什么时候将新的位置坐标写入ini文件的地方,在这句下面写相应代码 
 yidOng= false; 
 
 
 //如果用户勾掉了“吸附桌面”选项,则窗体可以移动,待用户确定新位置后, 
 //如果用户不勾上“吸附桌面”菜单项,则不记录新位置坐标,否则将新位置的坐标写入ini配置文件中。 
 try 
 ...{ 
 //获取窗体移动后的坐标(_x,_y) 
 _x = this.Location.X; 
 _y = this.Location.Y; 
 //勾选但不移动的处理(部分代码) 
 xin_x = this.Location.X; 
 xin_y = this.Location.Y; 
 
 //相或,一真为真。即如果x不同或y不同或两个都不同,则说明窗体位置发生变化了 
 //须执行写入操作 
 //勾选但不移动的处理(部分代码) 
 if (!(xin_x == old_x) || !(xin_y == old_y)) 
 ...{ 
 StreamWriter sw = new StreamWriter(pathbase + "CnClock.ini", false, Encoding.GetEncoding("gb2312")); 
 sw.Flush(); 
 sw.WriteLine(_x); 
 sw.WriteLine(_y); 
 sw.Close(); 
 //新位置确认后给予提示 
 this.notifyIcon1.ShowBalloonTip(5, "CnClock提示", "新位置已设定!", ToolTipIcon.Info); 
 } 
 } 
 catch (Exception ex) 
 ...{ 
 MessageBox.Show(ex.Message.ToString()); 
 } 
 } 
 else 
 ...{ 
 yidOng= true; 
 } 
 }
 
 
 
 设置开机自启动功能:

 
 
  

//设置开机启动功能 
 private void 开机启动ToolStripMenuItem_CheckStateChanged(object sender, EventArgs e) 
 ...{ 
 /*设计思路: 2012年1月31日16:00:47完成 
 * 默认开机启动,则在form_load中先执行一下设置autorun方法。 
 * 用户勾掉“开机启动”项后,则取消autorun,用户勾选“开机启动”项后,则设置autorun。 
 */ 
 //初始为开机启动,则isautorun初始为true,当用户点击该项后,isautorun为false,不开机启动。 
 isautorun = !isautorun; 
 if (isautorun == true) 
 ...{ 
 //isautorun为true,开机启动 
 auToRun.SetAutoRun(Application.ExecutablePath, true); 
 //设置为开机启动后给予提示 
 this.notifyIcon1.ShowBalloonTip(5, "CnClock提示", "开机启动已设定!", ToolTipIcon.Info); 
 } 
 else 
 ...{ 
 //isautorun为false,开机不启动 
 auToRun.SetAutoRun(Application.ExecutablePath, false); 
 //设置为开机不启动后给予提示 
 this.notifyIcon1.ShowBalloonTip(5, "CnClock提示", "已关闭开机启动!", ToolTipIcon.Info); 
 } 
 }
 
 
 
 
程序下载地址:CnClock1.0版:http://dl.dbank.com/c0qbry08qv
            CnClock2.0版:http://dl.dbank.com/c0m78h7dty
            如果以上页面无法下载可到下面页面下载:http://www.kuaipan.cn/index.php?ac=file&oid=5028779638390791
 
 
说明:两个版本的区别是1.0版是方形显示的,2.0版是条形显示的(见文首图片)。
 
该程序需要.net Framework2.0或以上版本支持。

目前发现的一个小问题:


在程序选择是否支持开机启动时,要操作注册表。如果用户电脑上装有360安全卫士或QQ电脑管家等管理软件,会弹出提示信息。如果用户选择了不允许操作注册表,则程序弹出异常提示,注册表信息不会写入,但写入正确的气泡提示信息还会弹出来。这个地方还需要修改一下。

更多CnClock桌面时钟-Winform小程序开发 相关文章请关注PHP中文网!

推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 微信答题小程序的设计与实现详解
    本文详细介绍了如何设计和实现一个微信答题小程序,包括题库的设计和题目的呈现。通过抽取题目编号和使用全局变量记录当前题目的信息,实现了题目的刷新和显示。同时,还介绍了题目的展示方式和容器的创建。本文适合零基础的小白学习微信答题小程序的开发。 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 使用flex弹性布局来为微信小程序写自适应页面
    我们知道,写习惯了前端的人,一般切图后布局页面的话,上手最习惯的是基于盒子模型的浮动布局,依赖display属性positi ... [详细]
  • PHP小习题:PHP小练习题前几天在百度知道里面看到有位网友询问如何制作一下的小程序:用php语言设计一个小程序,计算今天到达下月的天数、全部输出这些天数,并使得每天的日期以三种颜 ... [详细]
  • vuecli创建项目(详情步骤)
    1、安装node环境2、下载vue和vue-cli脚手架命令行输入npm ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
author-avatar
遗忘的花心本分尐男人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有