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版,不 ...
随机推荐
- C语言学习(三)
一.数组.循环.判断条件 #include<stdio.h> int main(){ int a =100; int b =200; int i; int arr [5]; if (a ...
- xmind2020 zen 10.3.1安装破解教程
hi大家好,xmind zen 2020 10.3.1是一款优秀的思维导图工具,我和我爸爸都在用,功能包括去掉xmind zen水印.上传图片等功能,支持windows操作系统! 文章教大家安装并解锁 ...
- upload-lab 靶场实战
文件上传/下载 漏洞 冲冲冲,好好学习 2020.02.13 淦靶场之前,先来点知识铺垫铺垫. 文件上传漏洞 前端Js绕过. MIME类型绕过 后缀名大写写绕过 / php4 .php5 00截断 覆 ...
- DC-1 靶机渗透测试
DC-1靶机渗透测试 对着镜子大喊三声"太菜了""太菜了""太菜了" DC系列靶机的第一篇.边学习边日靶机边进步,摸爬滚打着前行. 内容不只 ...
- WarError syncing load balancer: failed to ensure load balancer: network.SubnetsClient#Get: Failure responding to request: StatusCode=403
Warning SyncLoadBalancerFailed 4m55s (x8 over 15m) service-controller Error syncing load balancer: f ...
- IPSec组播概要
IPSec作为主流IP安全协议之一,在单播环境下,特别是在VPN场景中应用广泛.但是在组播环境貌似看到的不多,通过RFC4301了解到IPSec首先是支持组播的,即通过手动配置的方式可以实现组播包加密 ...
- 干了快3年Android了,感觉自己的职业生涯已经快凉了
背景 首先我是个菜鸡,工资也低的一笔. 刚毕业时候在一家国企上班干 app 开发,干了快两年的时候,跳槽到了一家伪大厂干安全.投了不少简历都没有回音,只有这加伪大厂要我就来了.当时说好了会接触一些底层 ...
- 本以为精通Android事件分发机制,没想到被面试官问懵了
文章中出现的源码均基于8.0 前言 事件分发机制不仅仅是核心知识点更是难点,并且还是View的一大难题滑动冲突解决方法的理论基础,因此掌握好View的事件分发机制是十分重要的. 一.基本认识 1. 事 ...
- @Value(value="${***.***}")配置文件赋值给static静态变量
public static String topicName; @Value("${activemq.topicName}") public void setTopicName(S ...
- VIM正则表达式的懒惰模式
例如有如下一段话: Another whale sighting occurred on , <2004>. AK and HI 要匹配每一个<...>,如果用<.> ...