C# - 音乐小闹钟_BetaV2.0
- 时间:2017-11-21 作者:byzqy
介绍:
虽然上一版本基本实现了闹钟的功能,但是界面、功能、用户体验(简直谈不上体验^_^),以及众多的bug,所以升级,刻不容缓!
还是先看一下BetaV2.0的最终效果:
工具/原料:
(操作系统:Windos 7/10,开发工具:Visual Studio 2015,目标框架:.NET Framework 4)
Windows窗体(1个)
用到的控件:Label、ComboBox、Button、CheckBox、PictureBox
新增的控件:Panel(2个)
组件:Timer
素材:
①wav格式的音频文件(若干)
②txt格式文本文件(若干,用来存放歌曲对应歌词文本)
③jpg/gif格式图片(若干,用来显示歌曲对应的歌手)
④gif格式图片(1张,用来表示歌曲处于播放状态,替代上一版本的音符图片)
代码/逻辑:
用Windows小画家画了一张图,帮助理清代码结构。(右键在新标签页查看清晰原图!)
部分代码:(来自文件:Form.cs)
//自定方法:初始化
private void startup() //登录成功后初始化用户界面
{
//time to string 界面显示当前时间
labelCurrentValue.Text = DateTime.Now.ToString();
//int to string 选择框默认显示时间(位数不足2位,前面补0.)
comboBox1.Text = Convert.ToString(DateTime.Now.Hour).PadLeft(2, '0');
comboBox2.Text = Convert.ToString(DateTime.Now.Minute).PadLeft(2, '0');
comboBox3.Text = Convert.ToString(DateTime.Now.Second).PadLeft(2, '0');
//为界面和后台设置闹钟初始默认值
alarm_hour = DateTime.Now.Hour;
alarm_minute = DateTime.Now.Minute;
alarm_second = DateTime.Now.Second;
alarm_time = 00 + ":" + 00 + ":" + 00; //time to string 闹钟显示时间
labelAlarmValue.Text = Convert.ToDateTime(alarm_time).ToString(); //默认铃声编号
comboBox4.Text = Convert.ToString(1);
ringNumber = 1; label3.Text = ""; //检测文件夹内文件个数
string musicDirPath = Application.StartupPath + "\\music\\";
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(musicDirPath);
fileNum = dir.GetFiles().Length; //动态获取铃声数量选择列表
IList<string> list = new List<string>(); for (int a = 1; a <= fileNum; a++)
{
list.Add(a.ToString());
}
comboBox4.DataSource = list;
} //登录按钮
private void buttonLogin_Click(object sender, EventArgs e)
{
string name = textBoxName.Text.Trim();
string pwd = textBoxPwd.Text; if (checkBoxRememberPwd.Checked)
{
}
else
{
if (name == "admin" && pwd == "admin")
{
//登录成功
panelLoginFace.Visible = false;
panelUserFace.Visible = true; //开放窗体最大化按钮功能
this.MaximizeBox = true; //开放歌手和歌词控件显示功能
pictureBoxSinger.Visible = true;
textBoxLyrics.Visible = true; //初始化用户界面
startup(); } else if(name == "" || pwd == "")
{
if (name == "")
{
MessageBox.Show("用户名不能为空!");
}
else if(pwd == "")
{
MessageBox.Show("请输入密码!");
} }
else
{
MessageBox.Show("用户名或密码输入错误,请重新输入!");
textBoxName.Clear();
textBoxPwd.Clear();
textBoxName.Focus();//让文本获得焦点
}
} } //重置按钮
private void buttonReset_Click(object sender, EventArgs e)
{
textBoxName.Clear();
textBoxPwd.Clear();
textBoxName.Focus();//让文本获得焦点
} //鼠标光标进入控件区域
private void labelAuthor_MouseEnter(object sender, EventArgs e)
{
pictureBoxAuthor.Visible = true;
} //鼠标光标离开控件区域
private void labelAuthor_MouseLeave(object sender, EventArgs e)
{
pictureBoxAuthor.Visible = false;
}
实现的功能/存在的问题:
1、新增了登录界面,不过登录界面没有使用“窗体”,而是使用 Panel 控件的 Visible 属性,通过登录前显示,登录后隐藏来完成的!用户名和密码都是写死在code里的。虽然设置一个登录界面没什么意义,不过也算是向个性化和定制化迈出了一小步![尴尬脸^_^] Panel 的一个好处就是可以将众多的控件给包起来,方便统一管理:比如说移动,或者更换背景颜色!
2、在PictureBox控件种装入自己的微信二维码截图,也是一种时髦的介绍自己的方式。同样是通过 PictureBox 的 Visible 属性来实现的!为Label控件(“@作者”)添加 MouseEnter 事件和 MouseLeave 事件,在分别在两个事件中设置 PictureBox 的显示和隐藏。当鼠标光标悬停于 Label 上时,就会看到效果!
3、……so many bugs!ˇˍˇ 主要的铃声试听部分仍需改善~ (敬请期待BetaV3.0)
--The End!(本篇完)
C# - 音乐小闹钟_BetaV2.0的更多相关文章
- C# - 音乐小闹钟_BetaV3.0
时间:2017-11-22 作者:byzqy 介绍: 音乐小闹钟 BetaV3.0 新鲜出炉了,快来围观吧!上效果图: 是不是觉得顿时变得高大上了许多呢?^_^ 工具/原料: (操作系统:Window ...
- C# - 音乐小闹钟_BetaV1.0
时间:2017-11-20 作者:byzqy 介绍: 前段时间看到别人利用Timer控件实现了检查电脑本地时间,然后对时间进行比较,最终实现闹钟功能.感觉有点意思,于是自己也做了一个小闹钟! 先看一下 ...
- Android菜鸟的成长笔记(25)——可爱的小闹钟
摘要: 这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题.判断第一次启动应用.自定义动画.对话框.制作指导滑动页面等方面.最后形成 ...
- python学习之——小闹钟(持续完善ing)
"啊,坏了,我忘了那啥啥了~~~" 为了不坏了,动手做一个小闹钟吧,一点点完善的过程一定美好极了,必像等待培育许久的花儿绽放一样,不多说,加油,期待↖(^ω^)↗ #! /usr/ ...
- 安卓开发笔记——Broadcast广播机制(实现自定义小闹钟)
什么是广播机制? 简单点来说,是一种广泛运用在程序之间的传输信息的一种方式.比如,手机电量不足10%,此时系统会发出一个通知,这就是运用到了广播机制. 广播机制的三要素: Android广播机制包含三 ...
- 生日小助手V4.0——迁移到Python3
生日小助手V4.0——迁移到Python3 生日小助手V4.0只支持Linux系统,依赖命令行软件lunar Ubuntu系统安装方法:1.安装lunarsudo apt-get install lu ...
- 【开源分享】2018CRM C# 源码(基于小黄豆CRMv2.0.925.3版本功能更新)
分享出来的初衷,我分享一下最近我在小黄豆CRM2.0版本(小黄豆CRM+v2.0.925.3)上加的功能,如果有类似需求的,可以把功能代码发你,节约你的开发时间.(这是在小黄豆开源免费CRM①群231 ...
- Windows10 小闹钟
Windows 10 自带小闹钟功能,便于我们进行时间管理,到点提醒. 尤其作为IT的工作者,首先要保证身体的健康,要定好休息的时间,哪怕5分钟,也能让人满血复活. 其次,便于我们将各种优先级的事务进 ...
- WordPress版微信小程序3.0版发布
距离WordPress版微信小程序上一个版本的发布过去了一个月了.在此间,我的工作有些变化,加上正在开发新版本,目前开源版的完善和升级稍稍有些滞后. 虽然这个版本是3.0版,期间有个过渡的2.8版,不 ...
随机推荐
- spring boot(二)整合mybatis plus+ 分页插件 + 代码生成
先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...
- P3312 数表
P3312 数表 题意 求出 \[\sum_{i=1}^n\sum_{j=1}^m\sigma(\gcd(i,j))[\sigma(\gcd(i,j))\le a] \] 其中 \(\sigma\) ...
- etcd学习(4)-centos7中部署etcd
etcd的搭建 前言 单机 集群 创建etcd配置文件 更新etcd系统默认配置 启动 配置ETCD为启动服务 测试下 参考 etcd的搭建 前言 这里记录下如何搭建etcd 单机 在etcd的rel ...
- python3中匿名函数做参数,匿名函数做实参,eval关键字
一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...
- C实现奇偶校验
奇偶校验原理(来自百度百科):奇偶校验(Parity Check)是一种校验代码传输正确性的方法.根据被传输的一组二进制代码的数位中"1"的个数是奇数或偶数来进行校验.采用奇数的称 ...
- SQL_之 递归_START WITH id ='102' CONNECT BY PRIOR pid=id
oracle 递归用法 SELECT * FROM menu START WITH id ='102' CONNECT BY PRIOR pid=id 一种应用 SELECT * FROM menu ...
- 🔥 LeetCode 热题 HOT 100(11-20)
20. 有效的括号 class Solution { public boolean isValid(String s) { Map<Character, Character> map = ...
- OpenFaaS实战之九:终篇,自制模板(springboot+maven+jdk8)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- C++ 打印乘法口诀
1 //嵌套循环 乘法口诀 2 #include <iostream> 3 using namespace std; 4 int main() 5 { 6 int i ,j; 7 for ...
- CentOS文件目录类语法
目录 一.目录查看切换类 1. pwd 显示当前工作目录的绝对路径 2. ls 列出目录的内容 二.文件与目录创建删除类 1. mkdir 创建一个新目录 2. touch 创建空文件 3. rmdi ...