MyKTV project summary
Jul 06, 2016 pm 01:30 PMProject name: KTV song request system - Instructor Yuan Yuming finally completed my KTV project after more than a week. To be honest, I gained a lot from doing this project, and there were many difficulties. However, After many hardships, I finally came through. Not simple! This project is mainly divided into front and backend. The main functions implemented by the front desk are: song requests from singers, pinyin
?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????--Instructor Yuan Yuming
After more than a week, I finally completed myKTV project. To be honest, I gained a lot from doing this project, and there were many difficulties. But after many hardships, I finally succeeded. It's coming. Not simple!
This project is mainly divided into front and backend. The main functions implemented by the front desk are: singer song request, pinyin song request, character number song request,
Genre selection, golden song ranking, some cut songs, duets, list of ordered songs, these are the main functions.The main functions implemented in the background are: adding singers, adding songs, modifying song paths, and modifying singer picture paths.
First look at the front desk:
Frontend core class:
SqlHelper
class (responsible for connecting to the database):
KtvHelper
class (<span style="color: #008000;">//</span><span style="color: #008000;">連接字符串</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span> str = <span style="color: #800000;">"</span><span style="color: #800000;">Data Source=HYJ-PC;Initial Catalog=MyKTV;User ID=sa;pwd=123</span><span style="color: #800000;">"</span>;directory where songs are saved; directory where singer pictures are saved)
Song class (song information and a switch to achieve song status(
Played<span style="color: #008000;">//</span><span style="color: #008000;">保存歌曲的目錄</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span> songURL = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">保存歌手圖片的目錄</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span> singer_photoURL = <span style="color: #800000;">""</span><span style="color: #000000;">; FrmByValue類(lèi)(窗體對(duì)象之間的傳值) </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> frmsonglist frmsl; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> FrmMain frM; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> SelectedSong ss;
;Not played; Replay;Cut song)):
PlayList class (plays the core content of songs, functions
<span style="max-width:90%">//</span><span style="color: #008000;">定義一個(gè)枚舉:歌曲播放狀態(tài)</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">enum</span><span style="color: #000000;"> SongPlayState { unplayed, played, newplayed, cut } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Song { </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> SongName { </span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span><span style="color: #000000;"> songName; } </span><span style="color: #0000ff;">set</span> { songName =<span style="color: #000000;"> value; } } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> SongURL { </span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span><span style="color: #000000;"> songURL; } </span><span style="color: #0000ff;">set</span> { songURL =<span style="color: #000000;"> value; } } </span><span style="color: #0000ff;">internal</span><span style="color: #000000;"> SongPlayState Playseat { </span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span><span style="color: #000000;"> playseat; } </span><span style="color: #0000ff;">set</span> { playseat =<span style="color: #000000;"> value; } } </span><span style="color: #0000ff;">PRivate</span> <span style="color: #0000ff;">string</span> songName;<span style="color: #008000;">//</span><span style="color: #008000;">歌曲名稱(chēng)字段</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span> songURL;<span style="color: #008000;">//</span><span style="color: #008000;">歌曲存放路徑字段 </span><span style="color: #008000;">//</span><span style="color: #008000;">讓歌曲的播放狀態(tài)默認(rèn)為未播放;</span> <span style="color: #0000ff;">private</span> SongPlayState playseat =<span style="color: #000000;"> SongPlayState.unplayed; </span><span style="color: #008000;">//</span><span style="color: #008000;">把歌曲狀態(tài)改為已播放</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> SetSongPlayed() { </span><span style="color: #0000ff;">this</span>.playseat =<span style="color: #000000;"> SongPlayState.played; } </span><span style="color: #008000;">//</span><span style="color: #008000;">把歌曲狀態(tài)改為重唱</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> SetnewSong() { </span><span style="color: #0000ff;">this</span>.playseat =<span style="color: #000000;"> SongPlayState.newplayed; } </span><span style="color: #008000;">//</span><span style="color: #008000;">把歌曲狀態(tài)改為一切歌</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Setcut() { </span><span style="color: #0000ff;">this</span>.playseat =<span style="color: #000000;"> SongPlayState.cut; }</span>
to implement playback, cut songs,Reprise)):
Code to implement form dragging (find the corresponding event and double-click):
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> PlayList { </span><span style="color: #008000;">//</span><span style="color: #008000;">定義一個(gè)數(shù)組,默認(rèn)可以?xún)?chǔ)存50首歌</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> Song[] songList=<span style="color: #0000ff;">new</span> Song[<span style="color: #800080;">50</span>];<span style="color: #008000;">//</span><span style="color: #008000;">歌曲播放列表數(shù)組</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span> songIndex;<span style="color: #008000;">//</span><span style="color: #008000;">當(dāng)前播放的歌曲在數(shù)組的索引</span> <span style="color: #0000ff;">#region</span> 添加播放歌曲 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">bool</span><span style="color: #000000;"> AddSong(Song song) { </span><span style="color: #0000ff;">bool</span> happy = <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i < songList.Length; i++<span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span> (songList[i] == <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[i] </span>=<span style="color: #000000;"> song; happy </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> happy; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 當(dāng)前播放的歌曲名稱(chēng) <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> PlayingSongName() { </span><span style="color: #0000ff;">string</span> songName = <span style="color: #800000;">""</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 歌曲名稱(chēng)</span> <span style="color: #0000ff;">if</span>(songList.Length><span style="color: #000000;">songIndex) { </span><span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songName </span>=<span style="color: #000000;"> songList[songIndex].SongName; } } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> songName; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 獲取當(dāng)前播放的歌曲 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> Song GetPlayingSong() { </span><span style="color: #0000ff;">if</span>(songIndex<<span style="color: #000000;">songList.Length) { </span><span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> songList[songIndex]; } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 下一首要播放的歌曲名稱(chēng) <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> NextSongName() { </span><span style="color: #0000ff;">string</span> songName = <span style="color: #800000;">""</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 歌曲名稱(chēng)</span> <span style="color: #0000ff;">if</span>(songIndex<<span style="color: #000000;">songList.Length) { </span><span style="color: #0000ff;">if</span> (songList.Length > songIndex + <span style="color: #800080;">1</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span> (songList[songIndex + <span style="color: #800080;">1</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songName </span>= songList[songIndex + <span style="color: #800080;">1</span><span style="color: #000000;">].SongName; } } } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> songName; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 切歌: <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> CutSong() { </span><span style="color: #008000;">//</span><span style="color: #008000;">代表切歌的位置</span> <span style="color: #0000ff;">int</span> i =<span style="color: #000000;"> songIndex; </span><span style="color: #0000ff;">if</span> (songList[i]!=<span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[i].Setcut(); } </span><span style="color: #0000ff;">while</span> (songList[i] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[i] </span>= songList[i + <span style="color: #800080;">1</span><span style="color: #000000;">]; i</span>++<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 如果到達(dá)數(shù)組最后一個(gè)元素,就將最后一個(gè)元素指向空</span> <span style="color: #0000ff;">if</span> (i ==<span style="color: #000000;"> songList.Length) { songList[i] </span>= <span style="color: #0000ff;">null</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">if</span> (songList[<span style="color: #800080;">0</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[</span><span style="color: #800080;">0</span>].Playseat =<span style="color: #000000;"> SongPlayState.played; } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 重放當(dāng)前歌曲 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> PlayAgain() { </span><span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[songIndex].SetnewSong(); } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 播放下一首 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> MoveOn() { </span><span style="color: #0000ff;">if</span>(songIndex<<span style="color: #000000;">songList.Length) { </span><span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span> && songList[songIndex].Playseat ==<span style="color: #000000;"> SongPlayState.newplayed) { songList[songIndex].SetSongPlayed(); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { songIndex</span>++<span style="color: #000000;">; } } } </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"> }</span>FrmMain)
<span style="color: #0000ff;">#region</span> 讓窗體實(shí)現(xiàn)拖動(dòng) <span style="color: #0000ff;">public</span> Point mouSEOffset; <span style="color: #008000;">//</span><span style="color: #008000;">記錄鼠標(biāo)指針的坐標(biāo) </span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> isMouseDown = <span style="color: #0000ff;">false</span>; <span style="color: #008000;">//</span><span style="color: #008000;">記錄鼠標(biāo)按鍵是否按下 </span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseDown(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> xOffset; </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> yOffset; </span><span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { xOffset </span>= -e.X -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Width; yOffset </span>= -e.Y - SystemInformation.CaptionHeight -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Height; mouseOffset </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Point(xOffset, yOffset); isMouseDown </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseMove(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (isMouseDown) { Point mousePos </span>=<span style="color: #000000;"> Control.MousePosition; mousePos.Offset(mouseOffset.X </span>+ <span style="color: #800080;">5</span>, mouseOffset.Y + <span style="color: #800080;">30</span><span style="color: #000000;">); Location </span>=<span style="color: #000000;"> mousePos; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseUp(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 修改鼠標(biāo)狀態(tài)isMouseDown的值 </span><span style="color: #008000;">//</span><span style="color: #008000;"> 確保只有鼠標(biāo)左鍵按下并移動(dòng)時(shí),才移動(dòng)窗體 </span> <span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { isMouseDown </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">#endregion</span>
Song star request song (
Frmbyswangetsong
<span style="max-width:90%">//</span><span style="color: #008000;">當(dāng)前播放的歌曲</span> <span style="color: #0000ff;">public</span><span style="color: #000000;"> Song songname; </span><span style="color: #0000ff;">#region</span> 讓窗體實(shí)現(xiàn)拖動(dòng) <span style="color: #0000ff;">public</span> Point mouseOffset; <span style="color: #008000;">//</span><span style="color: #008000;">記錄鼠標(biāo)指針的坐標(biāo) </span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> isMouseDown = <span style="color: #0000ff;">false</span>; <span style="color: #008000;">//</span><span style="color: #008000;">記錄鼠標(biāo)按鍵是否按下 </span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseDown(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> xOffset; </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> yOffset; </span><span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { xOffset </span>= -e.X -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Width; yOffset </span>= -e.Y - SystemInformation.CaptionHeight -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Height; mouseOffset </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Point(xOffset, yOffset); isMouseDown </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseMove(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (isMouseDown) { Point mousePos </span>=<span style="color: #000000;"> Control.MousePosition; mousePos.Offset(mouseOffset.X </span>+ <span style="color: #800080;">5</span>, mouseOffset.Y + <span style="color: #800080;">30</span><span style="color: #000000;">); Location </span>=<span style="color: #000000;"> mousePos; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseUp(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 修改鼠標(biāo)狀態(tài)isMouseDown的值 </span><span style="color: #008000;">//</span><span style="color: #008000;"> 確保只有鼠標(biāo)左鍵按下并移動(dòng)時(shí),才移動(dòng)窗體 </span> <span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { isMouseDown </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 點(diǎn)擊退出按鈕觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnexit_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { application.Exit(); } </span><span style="color: #008000;">//</span><span style="color: #008000;"> Login事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_Load(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;">把整個(gè)窗體對(duì)象賦給FrmByValue的靜態(tài)frM對(duì)象</span> FrmByValue.frM = <span style="color: #0000ff;">this</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">運(yùn)行窗體時(shí)啟動(dòng)定時(shí)器</span> <span style="color: #0000ff;">this</span><span style="color: #000000;">.tilist_played.Start(); </span><span style="color: #008000;">//</span><span style="color: #008000;">調(diào)用查詢(xún)返回路徑的方法,傳入SQL語(yǔ)句 </span><span style="color: #008000;">//</span><span style="color: #008000;"> 歌曲路徑</span> <span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select resource_path from Resource_path where resource_id=1</span><span style="color: #800000;">"</span><span style="color: #000000;">; KtvHelper.songURL </span>=<span style="color: #000000;"> song_path(sql); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 歌手圖片路徑</span> <span style="color: #0000ff;">string</span> sql1 = <span style="color: #800000;">"</span><span style="color: #800000;">select resource_path from Resource_path where resource_id=2</span><span style="color: #800000;">"</span><span style="color: #000000;">; KtvHelper.singer_photoURL </span>=<span style="color: #000000;"> song_path(sql1); } </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary> <span style="color: #808080;">///</span><span style="color: #008000;"> 查詢(xún)返回路徑的方法 </span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="sql"></span><span style="color: #008000;">傳入sql語(yǔ)句</span><span style="color: #808080;"></param></span> <span style="color: #808080;">///</span> <span style="color: #808080;"><returns></span><span style="color: #008000;">根據(jù)傳入的sql語(yǔ)句返回不同的路徑(1.resource_id=1歌曲路徑:resource_id=2歌手圖片路徑)</span><span style="color: #808080;"></returns></span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span> song_path(<span style="color: #0000ff;">string</span><span style="color: #000000;"> sql) { SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql, con); </span><span style="color: #0000ff;">string</span> path = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { con.Open(); SqlDataReader dr </span>=<span style="color: #000000;"> cmd.ExecuteReader(); </span><span style="color: #0000ff;">if</span> (dr != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (dr.HasRows) { </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (dr.Read()) { path </span>= dr[<span style="color: #800000;">"</span><span style="color: #800000;">resource_path</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); } } } } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">網(wǎng)絡(luò)異常!</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> { con.Close(); } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> path; } </span><span style="color: #008000;">//</span><span style="color: #008000;">點(diǎn)擊顯示播放觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnshow_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.Width == <span style="color: #800080;">567</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">this</span>.Width = <span style="color: #0000ff;">this</span>.Width + <span style="color: #800080;">208</span><span style="color: #000000;">; btnshow.Text </span>= <span style="color: #800000;">"</span><span style="color: #800000;">隱 藏 播 放</span><span style="color: #800000;">"</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.Width > <span style="color: #800080;">567</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">this</span>.Width = <span style="color: #800080;">567</span><span style="color: #000000;">; btnshow.Text </span>= <span style="color: #800000;">"</span><span style="color: #800000;">顯 示 播 放</span><span style="color: #800000;">"</span><span style="color: #000000;">; } } </span><span style="color: #008000;">//</span><span style="color: #008000;">已點(diǎn)歌曲窗體</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnopen_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { SelectedSong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SelectedSong(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 點(diǎn)擊拼音點(diǎn)歌觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnspell_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmbySongname frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmbySongname(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">點(diǎn)擊字?jǐn)?shù)點(diǎn)歌觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnum_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmbyziSong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmbyziSong(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">點(diǎn)擊類(lèi)型點(diǎn)歌觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btntype_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmbyTypesong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmbyTypesong(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">定時(shí)掃描歌曲列表,顯示當(dāng)前播放歌曲的名稱(chēng)</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> ShowPlayingSongName() { txtopen.Text </span>=<span style="color: #000000;"> PlayList.PlayingSongName(); txtnext.Text </span>=<span style="color: #000000;"> PlayList.NextSongName(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">播放歌曲的方法</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> PlaySong() { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 獲取當(dāng)前要播放的歌曲</span> <span style="color: #0000ff;">this</span>.songname =<span style="color: #000000;"> PlayList.GetPlayingSong(); </span><span style="color: #0000ff;">if</span> (songname != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">#region</span> 播放時(shí)顯示歌曲圖片 <span style="color: #0000ff;">string</span> name =<span style="color: #000000;"> songname.SongName; </span><span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select singer_id from song_info where song_name ='</span><span style="color: #800000;">"</span> + name + <span style="color: #800000;">"</span><span style="color: #800000;">' </span><span style="color: #800000;">"</span><span style="color: #000000;">; SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); con.Open(); SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql, con); </span><span style="color: #0000ff;">int</span> singerid =<span style="color: #000000;"> Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); </span><span style="color: #0000ff;">string</span> sql1 = <span style="color: #800000;">"</span><span style="color: #800000;">select singer_photo from singer_info where singer_id=</span><span style="color: #800000;">"</span> + singerid + <span style="color: #800000;">""</span><span style="color: #000000;">; SqlConnection con1 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); con1.Open(); SqlCommand cmd1 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql1, con1); </span><span style="color: #0000ff;">string</span> singer_photo =<span style="color: #000000;"> cmd1.ExecuteScalar().ToString(); con1.Close(); plist.Image </span>= Image.FromFile(KtvHelper.singer_photoURL +<span style="color: #000000;"> singer_photo); </span><span style="color: #0000ff;">#endregion</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 將當(dāng)前歌曲播放狀態(tài)設(shè)為已播放</span> <span style="color: #0000ff;">this</span><span style="color: #000000;">.songname.SetSongPlayed(); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 得到當(dāng)前播放歌曲的路徑</span> Playerlist.URL = KtvHelper.songURL +<span style="color: #000000;"> songname.SongURL; } } </span><span style="color: #008000;">//</span><span style="color: #008000;">計(jì)時(shí)器控件的Tick事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> tilist_played_Tick(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ShowPlayingSongName(); </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">this</span>.songname==<span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.PlaySong(); } </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.Playerlist.playState ==<span style="color: #000000;"> WMPLib.WMPPlayState.wmppsStopped) { </span><span style="color: #0000ff;">this</span>.songname = <span style="color: #0000ff;">null</span><span style="color: #000000;">; PlayList.MoveOn(); } </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">this</span>.songname!=<span style="color: #0000ff;">null</span>&&<span style="color: #0000ff;">this</span>.songname.Playseat==<span style="color: #000000;">SongPlayState.cut) { </span><span style="color: #0000ff;">this</span>.Playerlist.URL = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #0000ff;">this</span>.songname = <span style="color: #0000ff;">null</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.songname != <span style="color: #0000ff;">null</span> && <span style="color: #0000ff;">this</span>.songname.Playseat ==<span style="color: #000000;"> SongPlayState.newplayed) { </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.PlaySong(); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">點(diǎn)擊切歌觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnextsong_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.songname != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { PlayList.CutSong(); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">親!你還沒(méi)有添加歌曲</span><span style="color: #800000;">"</span><span style="color: #000000;">); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">點(diǎn)擊重唱觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnew_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.songname != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { PlayList.PlayAgain(); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">親!你還沒(méi)有添加歌曲</span><span style="color: #800000;">"</span><span style="color: #000000;">); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">點(diǎn)擊金曲排行觸發(fā)的時(shí)間</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnorderby_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmsonglist frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmsonglist(); frm.ph </span>= <span style="color: #800080;">1</span><span style="color: #000000;">; </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">歌星點(diǎn)歌</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnswan_Click_1(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { Frmbyswangetsong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Frmbyswangetsong(); frm.Show(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">當(dāng)鼠標(biāo)進(jìn)入控件可見(jiàn)狀態(tài)是觸發(fā)的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnswan_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnswan,</span><span style="color: #800000;">"</span><span style="color: #800000;">歌星點(diǎn)歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnspell_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnspell, </span><span style="color: #800000;">"</span><span style="color: #800000;">拼音點(diǎn)歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnum_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnnum, </span><span style="color: #800000;">"</span><span style="color: #800000;">字?jǐn)?shù)點(diǎn)歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btntype_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btntype, </span><span style="color: #800000;">"</span><span style="color: #800000;">類(lèi)型選擇</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnorderby_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnorderby, </span><span style="color: #800000;">"</span><span style="color: #800000;">金曲排行</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnew_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnnew, </span><span style="color: #800000;">"</span><span style="color: #800000;">重唱</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnextsong_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnnextsong, </span><span style="color: #800000;">"</span><span style="color: #800000;">切歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnopen_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnopen, </span><span style="color: #800000;">"</span><span style="color: #800000;">已點(diǎn)</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnfw_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnfw, </span><span style="color: #800000;">"</span><span style="color: #800000;">服務(wù)</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnexit_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnexit, </span><span style="color: #800000;">"</span><span style="color: #800000;">退出</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnfw_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">正在呼叫服務(wù)...</span><span style="color: #800000;">"</span><span style="color: #000000;">); }</span>
<span style="color: #008000;">//</span><span style="color: #008000;">Image Index</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> index=<span style="color: #800080;">0</span><span style="color: #000000;">; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> index_singer = <span style="color: #800080;">0</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">Load event</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> Frmbyswangetsong_Load(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;">When displaying the current form, let the second lvlisttwo and third lvlistthere controls not be displayed</span> lvlisttwo.Visible = <span style="color: #0000ff;">false</span><span style="color: #000000;">; lvlistthere.Visible </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #0000ff;">#region</span> Bind data to the first listview <span style="color: #008000;">//</span><span style="color: #008000;">Bind data and pictures to listview1</span> ListViewItem lv = <span style="color: #0000ff;">new</span> ListViewItem(<span style="color: #800000;">"</span><span style="color: #800000;">combination</span><span style="color: #800000;">"</span>, <span style="color: #800080;">0</span><span style="color: #000000;">); lv.Tag </span>= <span style="color: #800000;">"</span><span style="color: #800000;">combination</span><span style="color: #800000;">"</span><span style="color: #000000;">; ListViewItem lv1 </span>= <span style="color: #0000ff;">new</span> ListViewItem(<span style="color: #800000;">"</span><span style="color: #800000;">Female Singer</span><span style="color: #800000;">"</span>, <span style="color: #800080;">1</span><span style="color: #000000;">); lv1.Tag </span>= <span style="color: #800000;">"</span><span style="color: #800000;">Female</span><span style="color: #800000;">"</span><span style="color: #000000;">; ListViewItem lv2 </span>= <span style="color: #0000ff;">new</span> ListViewItem(<span style="color: #800000;">"</span><span style="color: #800000;">Male singer</span><span style="color: #800000;">"</span>, <span style="color: #800080;">2</span><span style="color: #000000;">); lv2.Tag </span>= <span style="color: #800000;">"</span><span style="color: #800000;">Male</span><span style="color: #800000;">"</span><span style="color: #000000;">; lvlistone.Items.Add(lv); lvlistone.Items.Add(lv1); lvlistone.Items.Add(lv2); </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"> } </span><span style="color: #008000;">//</span><span style="color: #008000;">Event triggered when clicking on the item in lvlistone</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> lvlistone_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;">If no item in the lvlistone control is selected, the second form will not be displayed. </span><span style="color: #008000;">//</span><span style="color: #008000;">Let the second appearing lvlisttwo and lvlistone be displayed at the same position</span> lvlisttwo.Location =<span style="color: #000000;"> lvlistone.Location; </span><span style="color: #008000;">//</span><span style="color: #008000;">If one item is selected, the second llvlisttwo will be displayed. </span><span style="color: #008000;">//</span><span style="color: #008000;">Let the second lvlisttwo display </span> lvlisttwo.Visible = <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #0000ff;">if</span> (lvlistone.SelectedItems[<span style="color: #800080;">0</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #008000;">//</span><span style="color: #008000;">How to dynamically bind data to the second listview control</span> <span style="color: #000000;"> lvlisttwoadd(); } }</span><span style="color: #008000;">//</span><span style="color: #008000;">The method of dynamically binding data to the second listview control lvlisttwoadd();</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> lvlisttwoadd() { SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); </span><span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select * from singer_type</span><span style="color: #800000;">"</span><span style="color: #000000;">; SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql, con); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { con.Open(); SqlDataReader dr </span>=<span style="color: #000000;"> cmd.ExecuteReader(); </span><span style="color: #0000ff;">if</span> (dr != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (dr.HasRows) { </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (dr.Read()) { </span><span style="color: #0000ff;">string</span> singertype_group = dr[<span style="color: #800000;">"</span><span style="color: #800000;">singertype_name</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); </span><span style="color: #0000ff;">int</span> id = Convert.ToInt32(dr[<span style="color: #800000;">"</span><span style="color: #800000;">singertype_id</span><span style="color: #800000;">"</span><span style="color: #000000;">]); ListViewItem lv </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ListViewItem(); lv.ImageIndex </span>= index <span style="color: #000000;">; lv.Text </span>=<span style="color: #000000;"> singertype_group; lv.Tag</span>=<span style="color: #000000;"> id; </span><span style="color: #008000;">//</span><span style="color: #008000;"> MessageBox.Show(lvlisttwo.Tag.ToString());</span> <span style="color: #000000;"> lvlisttwo.Items.Add(lv); } } } } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">Network abnormality!</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> { con.Close(); } }</span><span style="color: #008000;">//</span><span style="color: #008000;"> 03 Event triggered when clicking on the item in lvlisttwo </span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> lvlisttwo_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { lvlistthere.Items.Clear(); </span><span style="color: #008000;">//</span><span style="color: #008000;">If no item in the lvlisttwo control is selected, the third form will not be displayed. </span><span style="color: #008000;">//</span><span style="color: #008000;">If an item is selected, the second llvlistthere will be displayed </span> <span style="color: #0000ff;">if</span> (lvlisttwo.SelectedItems[<span style="color: #800080;">0</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { lvlisttwo.Visible </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">Let the third lvlistthere and lvlistone appear in the same position</span> lvlistthere.Location =<span style="color: #000000;"> lvlistone.Location; </span><span style="color: #008000;">//</span><span style="color: #008000;">Let the third lvlistthere display </span> lvlistthere.Visible = <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">Get whether the first listview clicked by the user is a male singer, female singer or group</span> <span style="color: #0000ff;">string</span> singer_group = lvlistone.SelectedItems[<span style="color: #800080;">0</span><span style="color: #000000;">].Tag.ToString(); </span><span style="color: #008000;">//</span><span style="color: #008000;">Get the id of which region the user clicks on the second listview</span> <span style="color: #0000ff;">int</span> cityid = Convert.ToInt32(lvlisttwo.SelectedItems[<span style="color: #800080;">0</span><span style="color: #000000;">].Tag); SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); </span><span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select singer_name,singer_photo from singer_info where singer_sex ='</span><span style="color: #800000;">"</span> singer_group <span style="color: #800000;">"</span> <span style="color: #800000;">' and singertype_id=</span><span style="color: #800000;">"</span> cityid <span style="color: #800000;">"</span> <span style="color: #800000;">"</span><span style="color: #000000;">; SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql,con); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { con.Open(); SqlDataReader dr</span>=<span style="color: #000000;"> cmd.ExecuteReader(); </span><span style="color: #0000ff;">if</span>(dr!=<span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(dr.HasRows) { </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (dr.Read()) { </span><span style="color: #008000;">//</span><span style="color: #008000;">Get the singer’s name and singer picture path</span> <span style="color: #0000ff;">string</span> singer_name = dr[<span style="color: #800000;">"</span><span style="color: #800000;">singer_name</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); </span><span style="color: #0000ff;">string</span> singer_photo_url = dr[<span style="color: #800000;">"</span><span style="color: #800000;">singer_photo</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); </span><span style="color: #008000;">//</span><span style="color: #008000;">Joint path</span> <span style="color: #0000ff;">string</span> URL = KtvHelper.singer_photoURL <span style="color: #000000;"> singer_photo_url; imgsingerinfo .Images.Add(Image.FromFile(URL)); ListViewItem lv </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ListViewItem(); lv.Text </span>=<span style="color: #000000;"> singer_name; lv.ImageIndex </span>=index_singer <span style="color: #000000;">; lvlistthere.Items.Add(lv); } } } } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">Network abnormality!</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> { con.Close(); } } } </span><span style="color: #008000;">//</span><span style="color: #008000;">Events triggered by clicking the button on the main interface</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnmain_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { FrmByValue.frM.Show(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Close(); } </span>

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

General Matrix Multiplication (GEMM) is a vital part of many applications and algorithms, and is also one of the important indicators for evaluating computer hardware performance. In-depth research and optimization of the implementation of GEMM can help us better understand high-performance computing and the relationship between software and hardware systems. In computer science, effective optimization of GEMM can increase computing speed and save resources, which is crucial to improving the overall performance of a computer system. An in-depth understanding of the working principle and optimization method of GEMM will help us better utilize the potential of modern computing hardware and provide more efficient solutions for various complex computing tasks. By optimizing the performance of GEMM

Many Mac users tend to keep the default name of their device and may never consider changing it. Many people choose to stick with the name from the initial setup, such as "Johnny's MacBook Air" or simply "iMac." Learning how to change the name of your Mac is a very useful skill, especially when you have multiple devices, as it can help you quickly distinguish and manage them. Next, we will teach you step by step how to change the computer name, host name and Bonjour name (local host name) in macOS system. Why should you change your Mac name? Changing the name of your Mac can not only show your personality, but also help improve the user experience: Personalize your Mac: The default name may not be to your taste, change it to a name you like.

On July 29, at the roll-off ceremony of AITO Wenjie's 400,000th new car, Yu Chengdong, Huawei's Managing Director, Chairman of Terminal BG, and Chairman of Smart Car Solutions BU, attended and delivered a speech and announced that Wenjie series models will be launched this year In August, Huawei Qiankun ADS 3.0 version was launched, and it is planned to successively push upgrades from August to September. The Xiangjie S9, which will be released on August 6, will debut Huawei’s ADS3.0 intelligent driving system. With the assistance of lidar, Huawei Qiankun ADS3.0 version will greatly improve its intelligent driving capabilities, have end-to-end integrated capabilities, and adopt a new end-to-end architecture of GOD (general obstacle identification)/PDP (predictive decision-making and control) , providing the NCA function of smart driving from parking space to parking space, and upgrading CAS3.0

Fermat's last theorem, about to be conquered by AI? And the most meaningful part of the whole thing is that Fermat’s Last Theorem, which AI is about to solve, is precisely to prove that AI is useless. Once upon a time, mathematics belonged to the realm of pure human intelligence; now, this territory is being deciphered and trampled by advanced algorithms. Image Fermat's Last Theorem is a "notorious" puzzle that has puzzled mathematicians for centuries. It was proven in 1993, and now mathematicians have a big plan: to recreate the proof using computers. They hope that any logical errors in this version of the proof can be checked by a computer. Project address: https://github.com/riccardobrasca/flt

PyCharm is a powerful Python integrated development environment that provides a wealth of development tools and environment configurations, allowing developers to write and debug code more efficiently. In the process of using PyCharm for Python project development, sometimes we need to package the project into an executable EXE file to run on a computer that does not have a Python environment installed. This article will introduce how to use PyCharm to convert a project into an executable EXE file, and give specific code examples. head

Title: Learn more about PyCharm: An efficient way to delete projects. In recent years, Python, as a powerful and flexible programming language, has been favored by more and more developers. In the development of Python projects, it is crucial to choose an efficient integrated development environment. As a powerful integrated development environment, PyCharm provides Python developers with many convenient functions and tools, including deleting project directories quickly and efficiently. The following will focus on how to use delete in PyCharm

Summary of the system() function under Linux In the Linux system, the system() function is a very commonly used function, which can be used to execute command line commands. This article will introduce the system() function in detail and provide some specific code examples. 1. Basic usage of the system() function. The declaration of the system() function is as follows: intsystem(constchar*command); where the command parameter is a character.

The best version of the Apple 16 system is iOS16.1.4. The best version of the iOS16 system may vary from person to person. The additions and improvements in daily use experience have also been praised by many users. Which version of the Apple 16 system is the best? Answer: iOS16.1.4 The best version of the iOS 16 system may vary from person to person. According to public information, iOS16, launched in 2022, is considered a very stable and performant version, and users are quite satisfied with its overall experience. In addition, the addition of new features and improvements in daily use experience in iOS16 have also been well received by many users. Especially in terms of updated battery life, signal performance and heating control, user feedback has been relatively positive. However, considering iPhone14
