• 时间: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的更多相关文章

  1. C# - 音乐小闹钟_BetaV3.0

    时间:2017-11-22 作者:byzqy 介绍: 音乐小闹钟 BetaV3.0 新鲜出炉了,快来围观吧!上效果图: 是不是觉得顿时变得高大上了许多呢?^_^ 工具/原料: (操作系统:Window ...

  2. C# - 音乐小闹钟_BetaV1.0

    时间:2017-11-20 作者:byzqy 介绍: 前段时间看到别人利用Timer控件实现了检查电脑本地时间,然后对时间进行比较,最终实现闹钟功能.感觉有点意思,于是自己也做了一个小闹钟! 先看一下 ...

  3. Android菜鸟的成长笔记(25)——可爱的小闹钟

    摘要: 这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题.判断第一次启动应用.自定义动画.对话框.制作指导滑动页面等方面.最后形成 ...

  4. python学习之——小闹钟(持续完善ing)

    "啊,坏了,我忘了那啥啥了~~~" 为了不坏了,动手做一个小闹钟吧,一点点完善的过程一定美好极了,必像等待培育许久的花儿绽放一样,不多说,加油,期待↖(^ω^)↗ #! /usr/ ...

  5. 安卓开发笔记——Broadcast广播机制(实现自定义小闹钟)

    什么是广播机制? 简单点来说,是一种广泛运用在程序之间的传输信息的一种方式.比如,手机电量不足10%,此时系统会发出一个通知,这就是运用到了广播机制. 广播机制的三要素: Android广播机制包含三 ...

  6. 生日小助手V4.0——迁移到Python3

    生日小助手V4.0——迁移到Python3 生日小助手V4.0只支持Linux系统,依赖命令行软件lunar Ubuntu系统安装方法:1.安装lunarsudo apt-get install lu ...

  7. 【开源分享】2018CRM C# 源码(基于小黄豆CRMv2.0.925.3版本功能更新)

    分享出来的初衷,我分享一下最近我在小黄豆CRM2.0版本(小黄豆CRM+v2.0.925.3)上加的功能,如果有类似需求的,可以把功能代码发你,节约你的开发时间.(这是在小黄豆开源免费CRM①群231 ...

  8. Windows10 小闹钟

    Windows 10 自带小闹钟功能,便于我们进行时间管理,到点提醒. 尤其作为IT的工作者,首先要保证身体的健康,要定好休息的时间,哪怕5分钟,也能让人满血复活. 其次,便于我们将各种优先级的事务进 ...

  9. WordPress版微信小程序3.0版发布

    距离WordPress版微信小程序上一个版本的发布过去了一个月了.在此间,我的工作有些变化,加上正在开发新版本,目前开源版的完善和升级稍稍有些滞后. 虽然这个版本是3.0版,期间有个过渡的2.8版,不 ...

随机推荐

  1. java跨平台性说明

    一.举例说明 我们知道,只要是用标准C开发的程序,使用不同的编译器编译后的可执行文件是可以在对应平台运行的,比如windows可以使用VC编译,那编译后的exe文件就可以在windows下运行:liu ...

  2. JSON数据的HTTP Header应该怎么标记?

    第一种 header('Content-type: application/json'); 另一种 header('Content-type: text/json');

  3. 遥远的国度 (树链剖分换根),洛谷P3979

    析:显然,若没有换根操作,则为树链剖分板子题,但是这道题我们考虑换根操作 考虑这样一个性质:在一棵树上,两点的距离路径是唯一的!! 也就是说,我们在修改路径上的点权时,不必考虑根在哪里,直接利用模板修 ...

  4. Jms - SSRF - 代码审计

    在先知上看见一人发的文章.. 一看ID这么熟悉 原来是一个群友 唉 自己审计这么垃圾 几百年没搞过了 然后玩玩吧 一打开源码 我吐了 ctrl+alt+l格式化下代码 顺眼多了 然后Seay走了一波 ...

  5. python自动化之(自动生成测试报告)

    前言:  用python执行测试脚本, 测试报告是记录我们测试过程的问题, 方便我们对整个测试过程的把控. 这里引用的是别人写好的模板, 我们拿过来用就OK, 能力强者可自行编写模板 测试报告图模板: ...

  6. 说说 VARCHAR 背后的那些事

    在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如: 1.  对于固定长度的字符串,为什么推荐使用 CHAR 来存储? 2.  VARCHAR 可设置的最大长度是多少? 3 ...

  7. anaconda的报错:Anaconda:There is an instance of anaconda navigator already running error

    anaconda的报错:Anaconda:There is an instance of anaconda navigator already running error 出现这个问题的时候人蒙了,主 ...

  8. TreeUtil.java

    package com.infish.util; import java.lang.reflect.Method; import java.util.ArrayList; import java.ut ...

  9. 011 FPGA千兆网TCP通信【转载】

    一.LWIP 首先通过上面的简单分析,我们应该很清楚一件事:TCP协议很复杂,光握手过程就需要"三次握手.四次挥手"的复杂过程,不是特别适合FPGA的纯逻辑实现,因为用FPGA实现 ...

  10. OpenCV 之 自定义滤波

    图像处理中,"空间域" 指的是图像平面,因此,空间滤波 可定义为:在图像平面内对像素灰度值进行的滤波 1  空间滤波 1.1  滤波过程 如图,Filter 是一个 3x3 滤波核 ...