大家好!新来乍到 这是我CSDN的第一篇文章 还请大家多多关照 !

最近学习winfrom制作了一个KTV的排行榜点歌系统 整个过程是下来感受是倍感充实 很有成就感!前台排行榜点歌 是点击排行榜后通过系统后台数据库的数据 来查询所有的热歌 来显示出所有的热榜歌曲!

以上图片是成品样式

功能:1.点击下一页和上一页可以实现翻页效果 页面数字也会随着页数的点击而变化

2.下方按钮实现了 切歌 暂停 音量加减 播放MV 等功能

该页面所有功能主要分为两大类:

1.查询数据库中所有热门的歌曲 并显示才列表内

2.实现点歌功能 在播放的同事实现音量加减 切歌 暂停等功能

以下为详细步骤:

首先 在面板中拖动一个大的panel面板  在大panel面板中放入几个小的panel面板 并加上label和butten来显示歌名和点歌按钮

效果图:

这里我们插入了五个panel 首先则是要查询出共有多少条数据 然后就是要设定每一页五首歌曲 若

大于五首则跳转到下一页

   //查询总条数public int QuerySongCount(){DBHelper.OpenConnection();string sql = "select count(*) from song_info";SqlCommand command = new SqlCommand(sql,DBHelper.Connection);int  count = (int)command.ExecuteScalar();DBHelper.CloseConnection();return count;}//查询5条歌曲public void QuerySongList( int  page){DataSet ds = new DataSet(); //临时仓库,数据集string sql = "select  top 5 * from song_info";if(page>1){int start = (page - 1) * 5;sql += " where song_id not in (select top " + start + " song_id from song_info)";}   SqlDataAdapter adapter = new SqlDataAdapter(sql, DBHelper.Connection);//放入结果集adapter.Fill(ds, "song");//获取dataset临时仓库的值DataTable dt = ds.Tables["song"];int i = 0;foreach (DataRow row in dt.Rows){string name = row["song_name"].ToString();string url = row["song_url"].ToString();//一行 的panelPanel  p = this.panel1.Controls[i] as Panel;//找到一行的panel中的第一个小控件labelLabel  l = p.Controls[1] as Label;l.Text = name; //歌曲名称赋值l.Tag = url;//Tag : 存放数据i++;}}

以上就是查询排行榜歌曲的数据

如此页并没有喜欢的歌曲 点击下一页按钮则进入下一页歌曲列表 点击上一页按钮则返回上一页

代码如下:

 //下一页private void button8_Click(object sender, EventArgs e){//第几页string p=  this.label6.Text;int page = Convert.ToInt32(p) + 1;this.label6.Text = page.ToString();//改变label//查询page页的内容 从第几条开始查(page-1)*5//查询列表QuerySongList(page);}//上一页private void button8_Click(object sender, EventArgs e){//第几页string p = this.label6.Text;int page = Convert.ToInt32(p) - 1;this.label6.Text = page.ToString();//改变label//查询page页的内容 从第几条开始查(page-1)*5//查询列表QuerySongList(page);}

下面将完成第二大步骤

实现 播放,暂停,音量加减,删除等功能

首先我们要先要把这几个功能的按钮拖出

1.播放

首先我们要把当前播放的第几首歌取值

设置判断 播放器状态改变事件 如果是end结束状态

设置判断  定时器:监控播放器的就绪状态,点击播放

代码如下:

 //播放private void button6_Click(object sender, EventArgs e){Button btn = sender as Button;//把当前播放的第几首歌取值YiDian.curentPlay =  (int)btn.Tag;//panel  行Label  l = btn.Parent.Controls[3] as Label;//播放地址string url = l.Tag.ToString();this.axWindowsMediaPlayer1.URL = Application.StartupPath+ url;}//播放器状态改变事件private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e){//如果是end结束状态if (this.axWindowsMediaPlayer1.playState ==WMPLib.WMPPlayState.wmppsMediaEnded){  //下一首this.axWindowsMediaPlayer1.URL = Application.StartupPath + YiDian.songList[YiDian.curentPlay+1].SongUrl;}}//定时器:监控播放器的就绪状态,点击播放private void timer1_Tick(object sender, EventArgs e){if (this.axWindowsMediaPlayer1.playState ==WMPLib.WMPPlayState.wmppsReady){  //播放this.axWindowsMediaPlayer1.Ctlcontrols.play();}}

2.暂停

点击暂停按钮歌曲暂停 再次点击则播放继续歌曲

代码如下

 //暂停private void button21_Click(object sender, EventArgs e){Button btn = sender as Button;if (btn.Text == "暂停"){this.axWindowsMediaPlayer1.Ctlcontrols.pause();btn.Text = "播放";}else{this.axWindowsMediaPlayer1.Ctlcontrols.play();btn.Text = "暂停";}}

3.音量加减

点击音量+按钮歌曲音量加十分贝 点击音量-按钮歌曲音量减十分贝

代码如下:

//增大音量private void button22_Click(object sender, EventArgs e){int v = this.axWindowsMediaPlayer1.settings.volume;this.axWindowsMediaPlayer1.settings.volume = v + 10;}//减小音量private void button22_Click(object sender, EventArgs e){int v = this.axWindowsMediaPlayer1.settings.volume;this.axWindowsMediaPlayer1.settings.volume = v - 10;}

4.删除

如点击的歌曲不喜欢 点击删除按钮即可把歌曲删除

代码如下:

//删除private void button8_Click(object sender, EventArgs e){Button btn = sender as Button;int x = (int)btn.Tag;YiDian.songList.RemoveAt(x);//重新加载数据ShowYiDian();}

以上就是排行榜点歌的所有内容了 如需观看成品图请向上翻页

感谢观看,谢谢大家!

使用winfrom制作KTV排行榜点歌相关推荐

  1. 让音乐回归人性:用“语音+音乐”制作内容的“点歌台”让电台音乐节目另类重生

    在这个机器年代,你想听到有故事的声音吗? 内容的产生和消费在记忆中绝不像现在轻而易举.多年前,如果你想听些身边没有的歌,该怎么做?身边没有朋友借你磁带或打口碟的情况下,点歌台.收音机里的"音 ...

  2. c# winfrom 制作的滚动字幕动画窗体

    方法/步骤 先打开vs创建一个工程,创建一个窗体应用程序如下图: 从工具箱里向窗体添加lable和timer控件,并设置界面内容,如下图: 设置窗体的属性,如下图: 双击窗体添加Form1_Load事 ...

  3. 零云九歌小组KTV点歌系统简介

    指导老师:穆老师 班主任:佟老师 小组成员: 组长:张炜林  副组长:李钰 组员:郑宪佳 宋翔 李兆勋  杜庆霖 零云九歌 目录: 1.首页 2.项目前台 3..项目后台 总结: 本次KTV项目总结. ...

  4. 亦云小组KTV点歌系统简介

    20级青鸟四班 亦云小组 指导老师:穆老师   班主任:佟老师 小组成员: 组长:靳天宇 组员:王晓丹 谢佳泽 王睿志 蒲璐颖 张铨政 目录: 1.首页 2.项目前台 3..项目后台 总结: 本次KT ...

  5. ​凌云KTV点歌系统功能简介

    19级青鸟三班 凌云小组 指导老师:穆雄雄老师 班主任:王欣欣老师 小组成员: 组长:李磊    副组长:杨云浩 组员:高启航  朱齐 李欣然 高松 张方仪 王浩如 苏荟旭 贾增伟 制作周期:2020 ...

  6. .NET平台C/S架构应用程序开发核心技术总结(MyKTV点歌系统案例分析)

    .NET平台C/S架构应用程序开发核心技术总结(MyKTV点歌系统案例分析) 总结日期:2019年10月10日                                             ...

  7. KTV预定包厢酒柜存取酒小程序开发

    KTV预定包厢酒柜存取酒小程序开发 预约包厢 选择时间,包间套餐:可在线上"KTV超市"购买商品:跳转该KTV的点歌小程序 首页// 却换门店 门店信息,店铺导航,联系商家.预约K ...

  8. 微信小游戏排行榜:Cocos Creator

    上一篇文章介绍了主域和子域的概念,微信小游戏:主域子域,这一篇介绍一下怎样在微信小游戏中制作好友排行榜 创建工程 由于开放数据域是一个封闭.独立的 JavaScript 作用域,所以开发者需要创建两个 ...

  9. 2023年安装包制作工具有哪些?主流易用软件打包工具推荐

    安装包制作软件的选择 现在已经是2023年了,PC软件相对于前几年已经少了很多,大部分的桌面软件已经被App H5代替,但是还是有一些领域的软件暂时无法被代替的,对于软件的发布就离不开今天要讨论的安装 ...

最新文章

  1. Windows服务器修改默认TTL值的方法
  2. 为什么要做稀疏编码_为什么我每天都要编码一年,所以我也学到了什么,以及如何做。...
  3. [大学回忆录-思想]找工作:也谈谈我的专业技能
  4. css3中的border-image用法
  5. 在存储过程中执行别的存储过程并获取其返回的结果集
  6. 鸿蒙形容欣欣向荣发展,形容发展迅速的12个成语
  7. 造梦西游4手游服务器维护,造梦西游4手机版常见问题解答 新手看过来
  8. 实体消歧(链接到实体库)
  9. java-net-php-python-13jspm珠宝销售网开题计算机毕业设计程序
  10. 计算机顶会英文论文查找
  11. Google确认Chrome存在严重漏洞,向20亿用户发出警告:你们需立即更新浏览器
  12. 你懂SOLID原则吗?
  13. 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)
  14. sklearn入门——聚类算法KMeans
  15. 服务器 系统 ghost,3.5.2 在服务器上用Ghost恢复系统包(1)
  16. 印尼央行批准外国游客使用移动支付
  17. CV全新范式!LSTM在CV领域杀出一条血路!Sequencer:超越Swin、ConvNeXt等网络
  18. 快速排序(Quicksort)详解
  19. bootstrap 按钮样式汇总
  20. python ocr 文字识别_python:使用 cnocr 进行文字识别

热门文章

  1. 2023最新整理,340份各行业求职简历模板,找工作必备!
  2. Eclipse中更改tomcat版本
  3. xxx-1.0-SNAPSHOT.jar中没有主清单属性的解决方法
  4. 剑指offer----C语言版----第十一天
  5. Mac搭建GO开发环境
  6. 十大最赚钱增值业务排行榜
  7. ng-template、ng-container、ng-content 的用法
  8. H5 iOS微信端点击图片触发3Dtouch,导致无法扫描二维码【解决方法】
  9. 最后一公里极速配送(一)
  10. H.264系列文章(三)——帧内预测