• 时间: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. odoo里的javascript学习---自定义插件

    插件效果图 定义js odoo.define('auto_widget',function(require){ "use strict"//通过扩展AbstractField来扩展 ...

  2. Codeforces Round #735 (Div. 2) 题解

    比赛地址:https://codeforces.com/contest/1554. 只有 ABCD 的题解,E 不会. A 答案是 \(\max_i\{a_ia_{i+1}\}\).证明:(反证)如果 ...

  3. spring 读取account-service中的值

    account-service //main--resources--account-service.properties 文件位置 email.protocol=smtps email.host=s ...

  4. 大数据学习(09)—— Hive语法

    Hive官方网站上有详细的语法说明,参考LanguageManual. 这里我把最常用的几块列出来. HIVE DDL Database 建库语句 CREATE (DATABASE|SCHEMA) [ ...

  5. Rancher监控指标一文干到底

    一.工作负载指标 直接截取一个生产环境的rancher的web管理端-工作负载指标模块的图(这里没有汉化,直接英文)如下: 共5个大指标: CPU使用 内存使用 网络包 网络IO 磁盘IO 自学入口: ...

  6. 2021陕西省大学生网络安全技能大赛 Web ez_checkin

    web ez_checkin 进去看了一会,啥也没找到,直接上dirsearch 扫到一个index.php~,打开看一看,是php审计 <?php error_reporting(0); in ...

  7. 重返MySQL之MySQL基础

    重返MySQL之MySQL基础 本章详细介绍了,什么是数据库,常见的关系型数据库有哪些,什么是MySQL,及MySQL中DDL操作表,DML操作表记录. 1.0 数据库概述 1.1 数据存储的方式 目 ...

  8. azure删除ns时一直处于terminating状态

    写个脚本 #!/bin/bash NAMESPACE=corekubectl proxy &kubectl get namespace $NAMESPACE -o json |jq '.spe ...

  9. Docker入门第一章

    Docker为什么出现? 一款产品:开发到上线 两套环境!应用环境,应用配置! 可能在开发环境你的产品是正常的,但是到了线上环境你的产品可能就会出现各种原因,或许是因为环境的不同,也可能是因为配置的不 ...

  10. 【javaFX学习】(三) 控件手册

    移至http://blog.csdn.net/qq_37837828/article/details/78732605 更新 这里写的控件可能不是所有的控件,但是应该是比较齐全并足够用的了,后面还有图 ...