每一天一书第22期:一个人不该因为不想使劲就遗弃自己想要的事物葡京娱乐平台提现

活着不只是涉及成功与失利的记录,我们生存着是爱与被爱,在每个当下溜走在此以前,我们都该登时报告互相。——马修(Matthew)·托马斯(Thomas)    《不属于大家的百年》

  经过十多天的诸多不便奋战,MyK电视机点歌系统终于成型,从刚起先接受项目的不为人知,到形成项目时的欢喜,整个过程的辛苦和提交只有和睦知道.尽管这多少个类型还有好多亟需通盘的地点,譬如添加歌词新闻,实现窗体的吹嘘等,这么些在延续时间里本身再一一进行一个到家呢!

《不属于大家的世纪》

作者: 马修·托马斯

出版社:广西科学技术出版社

出版年:2016年9月

体育场馆索书号:I712.45/T963.2

葡京娱乐平台提现,《不属于我们的百年》封面。    图片来源于网络

率先呢,我先将一切项目所能实现的效率做一个简短的牵线,K电视机点歌系统包括了前台和后台两大一些,前台的效益就是力所能及基于客户的需求来实现点歌操作,后台紧即使协会者来添加歌手音讯和演唱者音信

内容简介

Irene·图穆蒂自小跟随他的爱尔兰移民家长生活在皇后区Wood赛德的一间酒店里。长时间的艰困生活,让他一心想要彻底摆脱这个弥漫着喧闹和心酸的地点,去成立属于自己的全体。长大后的Irene遇见了一位名叫埃德·利里的数学家,埃德的此举风度完全不同于以往他所认识的享有令她憎恶的老公。她确认这厮就是团结的系数伴侣,他也会将她领向这些自己渴望栖息的社会风气。他们结婚了,但艾琳(Irene)很快就发现丈夫并不像他那么向往着同一个不息变大的美利坚同盟国梦。Irene鼓励丈夫去追求更好的干活,更棒的仇敌,更大的房屋。但随着时光流逝,她发现男人与日俱增的冲突心境实际另有隐情。

一场避无可避的黑暗笼罩了她们的活着,在得知实情之后,艾琳(Irene)与先生和他们的幼子康奈尔却拼命维系着外部的宁静,更想要抓住渺茫的机遇,和她俩期待已久的将来…

前台

 葡京娱乐平台提现 1

这是前台的主界面,通过主界面上的一层层操作,分别可以进入相呼应的界面

葡京娱乐平台提现 2

这是当我播放歌曲后的主界面,添加歌曲后,主界面就能显得该歌手的图样音信,正在播放和下一首也会来得相应的公文音讯,并且,当我切歌后,歌手图片和文本框也能跟着变化

葡京娱乐平台提现 3

那是因此金榜名次进入的界面,歌曲的排列顺序都是通过点击的次数降序排列

葡京娱乐平台提现 4

葡京娱乐平台提现 5

这是系列点歌,当客户点击任意一个系列时都会依据客户所选的品种,到数据库中开展筛选,然后将筛选后的结果在歌曲列表中呈现出来

葡京娱乐平台提现 6

这是字数点歌,其中每个文字都是经过代码动态变化的,怎么着变迁将在末端写详细代码.当用户点击相应的篇幅时也会在数据库中展开筛选,然后在歌曲列表中展现出来,我们可以很精晓的觉得到,歌曲列表这么些窗体其实是多少个效率块共用的一个窗体.

葡京娱乐平台提现 7

这是拼音点歌,可以依据用户输入的拼音或者是歌曲名字举行模糊查询.

 葡京娱乐平台提现 8

这是已点列表,那其中我加了一个右键菜单,可以遵照用户的急需来开展当下播放和删除

葡京娱乐平台提现 9

葡京娱乐平台提现 10

葡京娱乐平台提现 11

这是歌星点歌,这三张图其实不是多少个窗体,而是一个窗体,只是用了多少个listview控件,当自身急需展现哪一个控件时就将此外多少个控件给隐蔽了.如何操作也将在前面通过代码进行详细介绍.

葡京娱乐平台提现 12

说到底这就是本人在主界面通过游戏添加的一个猜数小游戏.它能发生一个任意数,跟你输入的数举行一个相比较,假设大了或者是小了都会有对应的唤起,直到你猜中后,又会体现你一共猜了多少次,用户就能够按照你猜的次数的有点来拓展对应的治罪了.而且界面上的图是可动的,当程序运行起来后就仿佛一个少女在这时候跳舞.

 

这么些基本上就是自身总体前台所能实现的拥有效率了,后台的话在后头再跟大家逐一展示了.

上边就给咱们来得一些相呼应的代码了

一:怎么着实现无边框窗体的拖动

 1 private Point mouseOffset;        //记录鼠标指针的坐标        
 2         private bool isMouseDown = false; //记录鼠标按键是否按下   
 3         private void MainMenu_MouseDown(object sender, MouseEventArgs e)
 4         {
 5             int xOffset;
 6             int yOffset;
 7             if (e.Button == MouseButtons.Left)
 8             {
 9                 xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
10                 yOffset = -e.Y - SystemInformation.CaptionHeight - SystemInformation.FrameBorderSize.Height;
11                 mouseOffset = new Point(xOffset, yOffset);
12                 isMouseDown = true;
13             }
14 
15         }
16 
17         private void MainMenu_MouseMove(object sender, MouseEventArgs e)
18         {
19             if (isMouseDown)
20             {
21                 Point mousePos = Control.MousePosition;
22                 mousePos.Offset(mouseOffset.X + 5, mouseOffset.Y + 30);
23                 Location = mousePos;
24             }
25 
26         }
27 
28         private void MainMenu_MouseUp(object sender, MouseEventArgs e)
29         {
30             // 修改鼠标状态isMouseDown的值      
31             // 确保只有鼠标左键按下并移动时,才移动窗体       
32             if (e.Button == MouseButtons.Left)
33             {
34                 isMouseDown = false;
35             }
36 
37         }

在窗体中找到相呼应的事件,然后copy代码便可实现

二:实现窗体抖动的代码

 //实现窗体抖动的效果
            Point first = this.Location;
            for (int i = 0; i < 8; i++)
            {
                Random ran = new Random();
                Point p = new Point(this.Location.X + ran.Next(20) - 4, this.Location.Y +
                    ran.Next(20) - 4);
                System.Threading.Thread.Sleep(25);//当前线程挂起15毫秒
                this.Location = p;
                System.Threading.Thread.Sleep(25);//当前线程再挂起15毫秒


            }
            this.Location = first;   //将窗体还原为原来的位置    

 

全部K电视点歌系统中,我们需要定义多少个援助类.

1:Help类

public  class Help
    {
       public static string str = "data source=.;initial catalog=MyKTV;uid=sa;";

       public static string ways = "";  //保存歌手图片路径

       public static string songurl = "";   //保存歌曲路径
    }

2:PlayBackStatus(播放状态类)

public enum PlayBackStatus
    {
        PlayBack,   //已播
        NotBroadcast,   //未播
        NowBroadcast,   //正在播放
        Repeat,         //重播
        baoji,          //右键菜单的标记
        Cut     //切歌
    }

3:Song(歌曲类)

public  class song
    {
        public  string SongName;  //歌曲名称
        public  string SongURL;   //歌曲存放路径
        public PlayBackStatus playback;     //歌曲播放状态
        public string singerphotourl;  //歌手图片路径



    }

4:PlayList(播放列表类)

 public   class PlayList
    {
        public static song[] songlist = new song[100];  //定义一个歌曲数组
        public static int SongIndex = 0;        //当前播放歌曲在数组中的索引
        public static string NextSongName = "";    //下一首歌曲
        public static string zhuangtai = "";    //保存是切歌还是重播

        //将歌曲增加到歌曲数组中去
        public static bool AddSong(song song)
        {
            bool Result = false;    //记录歌曲是否添加成功
            for (int i = 0; i < songlist.Length;i++ )
            {
                if (songlist[i] == null)
                {
                    songlist[i] = song;
                    Result = true;
                    break;
                }
            }
            return Result;
        }

         //切歌
        public static void CutSong()
        { 
            //获取到当前播放的歌曲改变播放状态
            if (songlist[SongIndex] != null)
            {
                songlist[SongIndex].playback = PlayBackStatus.Cut;
                ChargeInde();   //改变歌曲索引,播放下一首
            }

        }

         //重唱
        public static void ListenAgain()
        {
            if (songlist[SongIndex] != null)
            {
                songlist[SongIndex].playback = PlayBackStatus.Repeat;   //改变歌曲播放状态

            }
        }
        //获取下一首歌曲的名称
        public static string GetNextSongName()
        {
            if (songlist[0]!=null && songlist[SongIndex + 1] == null)
            {
                NextSongName = "待添加....";
                return NextSongName;
            }
            else
            {
                if (songlist[0] != null)
                {
                    NextSongName = songlist[SongIndex + 1].SongName;
                    return NextSongName;
                }
                else
                {
                    return string.Empty;
                }
            }


        }

        //获得当前播放的歌曲
        public static song GetPlaySong()
        {
            if (songlist[SongIndex] != null)
            {

                return songlist[SongIndex];
            }
            else
            {
                return null;
            }
        }




         //播放下一首
        public static void ChargeInde()
        {
            SongIndex++;
        }

         //点击重播时根据歌曲名称查找该歌曲在歌曲列表中的位置并改变其状态
        public static void SelectFromSongName(string name)
        { 
            for (int i = 0; i < songlist.Length;i++ )
            {
                if (songlist[i] != null)
                {
                    if (songlist[i].SongName.Equals(name))
                    {
                        if (zhuangtai.Equals("重播"))
                        {
                            songlist[i].playback = PlayBackStatus.Repeat;   //将该歌曲状态修改成重播
                            break;
                        }
                        else
                        {

                            if (songlist[i + 1] != null && songlist[i].playback == PlayBackStatus.NowBroadcast)
                            {
                                songlist[i].playback = PlayBackStatus.Cut;   //将该歌曲状态修改成切歌
                                songlist[i + 1].playback = PlayBackStatus.NowBroadcast; //将下一首歌状态改成正在播放
                            }
                            else
                            {
                                MessageBox.Show("亲,最后一首歌曲和不是正在播放的歌曲不能切哟~~^_^");
                            }
                            break;
                        }
                    }
                }
                else
                {
                    break;
                }
            }
        }


         public static bool isRight=false;      //记录当isRight等于true时就播放选中歌曲


         //点击已点列表中的播放时,根据歌曲名找到索引
        public static void SelectIndexBySongName(string name)
        {

            for (int i = 0; i < songlist.Length; i++)
            {
                if (songlist[i] != null)
                {
                    if (songlist[i].SongName.Equals(name))
                    {
                         songlist[i].playback = PlayBackStatus.baoji;       //为选中歌曲做一个标记
                         songlist[SongIndex].playback=PlayBackStatus.PlayBack;   //将当前播放歌曲改为已播状态
                         SongIndex = i;     //将歌曲索引改变为所选中的歌曲
                         isRight = true;
                         break;
                    }
                }
                else
                {
                    break;
                }
            }
        }


         //删除右键菜单选中的歌曲
        public static bool delete(string name)
        {
            for (int i = 0; i < songlist.Length; i++)
            {
                if (songlist[i] != null)
                {
                    if (songlist[i].SongName.Equals(name))
                    {
                        if (songlist[i].playback == PlayBackStatus.NowBroadcast)
                        {
                            return false;

                        }
                        while(true)
                        {
                            if (songlist[i + 1] != null)
                            {
                                songlist[i] = songlist[i + 1];
                                i++;
                            }
                            else
                            {
                                songlist[i] = null;
                                break;
                            }
                        }

                            for (int l = 0; l < songlist.Length;l++ )
                        {
                            if (songlist[l] != null)
                            {
                            if (songlist[l].playback == PlayBackStatus.NowBroadcast)
                            {
                                SongIndex = l;
                            }
                            }
                        }

                    }
                }
                else
                {
                    break;
                }
            }
            return true;
        }

    }

当我们将那些协助类创造好之后,我们就足以起初落实其他功效块的书写了.

第一在一跻身主界面的时候大家将要保存歌手图片路径和歌曲路径

private void Form1_Load(object sender, EventArgs e)
        {
            //保存歌手图片前半部分路径
            string sql = "select ways from Ways where id=1";
            Help.ways = retunURL(sql);
            //保存歌曲前半部分路径
            string sql2 = "select ways from Ways where id=2";
            Help.songurl = retunURL(sql2);            
        }


//返回前半部分路径的方法
        public string retunURL(string sql)
        {
            SqlConnection con = new SqlConnection(Help.str);
            con.Open();

            SqlCommand com = new SqlCommand(sql, con);
            string URL = com.ExecuteScalar().ToString();
            con.Close();
            return URL;
        }

率先步成功后,我们就可以进如歌星点歌界面,实现歌星图片的动态加载了,我们地方歌星点歌的图形中,第一张是手动添加的,第二张半动态增长的(也可跟第一张一样手动添加,在这里是为着熟谙动态加载的代码),第三张是全动态增长的,手动添加的部分就是,准备一个listview,imagelist
选用大图标形式,直接添加图片索引和Text文本即可,在此处只显示全动态加载时所写的代码

第一步,在load事件中突显首个listview隐藏第二第六个listview

 //Load事件
        private void SingerStar_Load(object sender, EventArgs e)
        {
            //隐藏第二第三个窗体
            listView2.Visible = false;
            listView3.Visible = false;
        }

其次步,当自家点击第一个listview时保存所点的记录的文本或Tag并出示第二个listview

public string singertype = "";    //保存用户选择的歌星类型(男,女,组合)
        public int singerdistrictID;        //保存用户选择的歌星地区的ID(香港...大陆...台湾.....)
        public string singerdistrict;       //保存用户选择的歌星地区(香港...大陆...台湾.....)
        public int Number;                  //返回时更具Number的值来判断显示哪个控件,隐藏哪个控件


//从第一个控件跳转到第二个控件,第二个控件的文本和图像都是动态加载的
        public void ShowListView2()
        {
            Number = 2;
            if (listView1.SelectedItems[0] != null)
            {
                listView1.Visible = false;      //隐藏第一个控件
                listView2.Location = listView1.Location;    //让两个控件出现的位置相同
                listView2.Visible = true;       //显示第二个控件
                singertype = listView1.SelectedItems[0].Tag.ToString();
            }
            SqlConnection con = new SqlConnection(Help.str);
            string sql = "select * from singer_type    ";
            SqlCommand com = new SqlCommand(sql, con);
            listView2.Items.Clear();    //清空上次点击加载的数据
            try
            {
                con.Open();
                SqlDataReader read = com.ExecuteReader();
                if (read != null)
                {
                    if (read.HasRows)
                    {
                        int index = 0;

                        while (read.Read())
                        {
                            int TypeId = Convert.ToInt32(read["singertype_id"]);
                            string TypeName = read["singertype_name"].ToString();

                            ListViewItem list = new ListViewItem();
                            list.Text = TypeName;
                            list.Tag = TypeId;
                            list.ImageIndex = index;
                            listView2.Items.Add(list);
                            index++;
                        }
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("网络错误!");
            }
            finally
            {
                con.Close();
            }
        }

其三步,保存第二个listview中用户所采纳的记录,并且出示第两个listview

 //从第二个控件跳转到第三个控件,第三个控件的歌星图片是从电脑硬盘上加载的
        public void ShowListView3()
        {
            Number = 3;
            if (listView2.SelectedItems[0] != null)
            {
                listView2.Visible = false;  //隐藏第二个控件
                listView3.Location = listView2.Location;    //两个控件的出现位置相同
                listView3.Visible = true;   //第三个控件显示
                singerdistrictID = Convert.ToInt32(listView2.SelectedItems[0].Tag);   //获得用户点击的地区ID
                singerdistrict = listView2.SelectedItems[0].Text;   //获得用户点击的歌手地区
            }
            SqlConnection con = new SqlConnection(Help.str);
            con.Open();
            try
            {
                //查询符合用户选择的地区和歌手的类型的歌手名字
                string sql = @"select singer_name ,siinger_photo_url  from singer_info where singer_sex='" 
                    + singertype + "' and singertype_id=" + singerdistrictID + "";
                SqlCommand com = new SqlCommand(sql,con);
               SqlDataReader reader= com.ExecuteReader();
               listView3.Items.Clear(); //清除上次点击加载的数据
               imageList3.Images.Clear();   //清除imagelist中上一次保存的图片数据
               if (reader != null)
               {
                   if (reader.HasRows)
                   {
                       int index=0;

                       while (reader.Read())
                       {
                           string singerName = reader["singer_name"].ToString();
                           string singer_phone = reader["siinger_photo_url"].ToString();    //获得图片名字(后半部分路径)
                           string lujing = Help.ways + singer_phone;    //获得图片完整路径
                           imageList3.Images.Add(Image.FromFile(lujing));   //通过完整路径将图片保存到imagelist3中

                           ListViewItem list = new ListViewItem();
                           list.ImageIndex = index;
                           list.Text = singerName;

                           listView3.Items.Add(list);
                           index++;
                       }
                   }
                   else
                   {
                    DialogResult result= MessageBox.Show("没有" + singerdistrict+"地区 " + singertype + "歌手信息!!!!","用户提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
                    if (result == DialogResult.Yes)
                    {
                        fanhui();
                    }
                   }
               }

            }
            catch (Exception)
            {
                MessageBox.Show("网络异常!!");
            }
            finally
            {
                con.Close();
            }

        }

 

这么就能将我们的两个listview体现出来,并且可以实现动态加载数据了,到这边然后我们就足以遵照用户率先次,第二次的尺码来寻找数据库中的歌手信息,当用户点击歌手音信的时候就可以在歌曲列表中依照歌手名字显示所有的歌曲音信了

//获取选中歌星的名字,并将其值传递给歌曲列表然后显示歌曲列表
        private void listView3_Click(object sender, EventArgs e)
        {
            SongList song = new SongList();
            song.SingerName = listView3.SelectedItems[0].Text;
            song.singer = this;
            song.Show();
            this.Hide();
        }


//这是在歌曲列表中定义的一个歌手名字信息,然后通过窗体传值实现
public string SingerName;   //保存从歌星列表中传递过来要查询其歌曲信息的歌手的名字



string sql = @"select siinger_photo_url,song_name,singer_name , song_url  from song_info,singer_info 
where singer_info.singer_id=song_info.singer_id and singer_name='" + SingerName + "'";
 //根据歌手的名字将用户选择的歌手信息展示在LIstView控件中
        public void ShowUserByName(string sql)
        {
            dataGridView1.AutoGenerateColumns = false;
            SqlConnection con = new SqlConnection(Help.str);
            try
            {
                SqlDataAdapter da = new SqlDataAdapter(sql,con);
                DataSet dt = new DataSet();
                da.Fill(dt,"user");
                dataGridView1.DataSource = dt.Tables["user"];
            }
            catch (Exception)
            {
                MessageBox.Show("网络异常!!");
            }
            finally
            {
                con.Close();
            }
        }

这般,我就足以经过歌曲列表中的歌曲音讯来点歌了,当自身每点击一首歌,我就将所点的歌扩充到自家事先定义好的Song类里面的歌曲数组当中去

//添加歌曲的方法
        public void AddSong()
        {
            if (dataGridView1.SelectedRows[0].Cells[0].Value.ToString() != "")
            {
                song Song = new song();
                Song.SongName = dataGridView1.SelectedRows[0].Cells["songname"].Value.ToString();
                Song.SongURL = dataGridView1.SelectedRows[0].Cells["songurl"].Value.ToString();
                Song.playback = PlayBackStatus.NotBroadcast;//播放状态为未播
                Song.singerphotourl = dataGridView1.SelectedRows[0].Cells["siinger_photo_url"].Value.ToString();    //添加歌手图片路径
                bool result = PlayList.AddSong(Song); //将歌曲增加到播放列表里面
                if (result)
                {
                    MessageBox.Show("添加成功!!");
                    AddSongCount(dataGridView1.SelectedRows[0].Cells["songname"].Value.ToString());
                }
                else
                {
                    MessageBox.Show("添加失败!");
                }
            }
            else
            {
                MessageBox.Show("请选择正确的歌曲名称!");
            }
        }

同时,为了贯彻金榜排名,用户每添加一首歌,都在数据库旅长歌曲的点击次数加1

//每次点击歌曲后都在数据库中将该歌曲的点击次数增加1
        public void AddSongCount(string song_name)
        {
            SqlConnection con = new SqlConnection(Help.str);
            string sql = "update song_info set song_play_count=song_play_count+1 where song_name='"+song_name+"'";
            SqlCommand com = new SqlCommand(sql,con);
            con.Open();
            com.ExecuteNonQuery();
            con.Close();
        }

万一当大家的歌曲数组中有了歌曲之后,大家就足以开展歌曲的播音了,在播放器控件所在的界面(我的是主界面)就可以透过拿到到歌曲的完整路径来播放歌曲

再就是动态的给pictureBox添加歌手图片

public song CurrentSong;   //定义当前播放歌曲

//获得当前播放的歌曲
        public void PlaySong()
        {
            CurrentSong = PlayList.GetPlaySong();//事先定义的类里的方法
            if (CurrentSong != null)
            {
                CurrentSong.playback = PlayBackStatus.NowBroadcast; //将歌曲改成正在播放状态
                Player1.URL = Help.songurl + CurrentSong.SongURL;   //获得歌曲的路径
                singerimage.Image = Image.FromFile(Help.ways + CurrentSong.singerphotourl);
                textBox1.Text = CurrentSong.SongName;

            }
            else
            {
                //给文本框赋值
                textBox1.Text = ""; 
                textBox2.Text = "";
            }
        }

为了可以兑现连续播放,并且能够自动播放下一首,我们可以加一个计时器控件,每隔一秒扫描几遍歌曲音讯,判断时候为空,假设为空则开展播放下一首歌曲

public song NextSong;   //定义下一首播放的歌曲

 //获得下一首播放的歌曲名称
        public void NextPlay()
        {
           textBox2.Text= PlayList.GetNextSongName();   //事先定义的类
        }

 private void timer1_Tick(object sender, EventArgs e)
        {
            NextPlay(); //获得下一首歌曲的名称

            if (CurrentSong == null)
            {
                PlaySong();

            }
            if (Player1.playState == WMPLib.WMPPlayState.wmppsStopped)  //判断歌曲的播放状态是否为快要停止也就是是否快要播放完
            {
                if(CurrentSong!=null)
                {
                    CurrentSong.playback = PlayBackStatus.PlayBack; //将该歌曲状态改成已播放
                }
                CurrentSong = null;
                PlayList.ChargeInde();  //Playlist中定义的方法
            }
}

如此就着力实现了上上下下播放歌曲的全经过了,并且你的歌曲数组中有微微歌曲都能够依次顺序播放,以上代码实现了何等通过歌星点歌举行歌曲的播报,但是并没有实现切歌和重唱的效益,

切歌和重唱效率是按照歌曲的境况,在计时器控件中来开展判定操作的,遵照歌曲状态来施行相呼应的法门(这是主界面的切歌和重唱)

  //切歌
        private void pictureBox2_Click(object sender, EventArgs e)
        {
           // PlayList.CutSong();
            if (CurrentSong != null)
            {
                CurrentSong.playback = PlayBackStatus.Cut;
            }
            else
            {
                MessageBox.Show("亲~已经没歌了哦~~");
            }
        }

        //重唱
        private void lenago_Click(object sender, EventArgs e)
        {

            if (CurrentSong != null)
            {
                PlayList.ListenAgain();
            }
            else
            {
                MessageBox.Show("亲,还没歌呢~~");
            }

        }


//Tick事件
        private void timer1_Tick(object sender, EventArgs e)
        {
            NextPlay(); //获得下一首歌曲的名称

            if (CurrentSong == null)
            {
                PlaySong();

            }
            if (Player1.playState == WMPLib.WMPPlayState.wmppsStopped)  //判断歌曲的播放状态是否为快要停止也就是是否快要播放完
            {
                if(CurrentSong!=null)
                {
                    CurrentSong.playback = PlayBackStatus.PlayBack; //将该歌曲状态改成已播放
                }
                CurrentSong = null;
                PlayList.ChargeInde();  //Playlist中定义的方法
            }
            if (CurrentSong != null)
            {

                if (CurrentSong.playback == PlayBackStatus.Repeat)
                {
                    CurrentSong.playback = PlayBackStatus.PlayBack; //将歌曲改成已播放状态
                    PlaySong();
                }
                if (CurrentSong.playback == PlayBackStatus.baoji)
                {

                    CurrentSong.playback = PlayBackStatus.NowBroadcast; //将歌曲改成正在播放状态
                    PlaySong();
                }
                if (PlayList.isRight)   //判断是否播放选中歌曲
                {
                    PlaySong();
                    PlayList.isRight = false;
                }
                if (CurrentSong.playback == PlayBackStatus.Cut)
                {
                    PlayList.CutSong();
                    CurrentSong.playback = PlayBackStatus.PlayBack; //将歌曲改成播放状态
                    PlaySong();
                }

            }
        }

 在已点列表中的切歌和重唱,还有相对应的右键菜单

 //重唱
        private void lenago_Click(object sender, EventArgs e)
        {

            if (listView1.SelectedItems.Count != 0)
            {
                PlayList.zhuangtai = "重播";
                string SongName = listView1.SelectedItems[0].SubItems[0].Text;
                PlayList.SelectFromSongName(SongName);
                listView1.Items.Clear();
                show();
            }
            else
            {
                MessageBox.Show("请选择一项歌曲!");
            }

        }

        //切歌
        private void pictureBox2_Click(object sender, EventArgs e)
        {

            if (listView1.SelectedItems.Count!= 0)
            {
                PlayList.zhuangtai = "切歌";
                string SongName = listView1.SelectedItems[0].SubItems[0].Text;
                PlayList.SelectFromSongName(SongName);
                listView1.Items.Clear();
                show();


            }
            else
            {
                MessageBox.Show("请选择一项歌曲!");
            }

        }

//右键菜单点击播放
        private void 播放ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count != 0)
            {
                string SongName = listView1.SelectedItems[0].SubItems[0].Text;
                PlayList.SelectIndexBySongName(SongName);
                listView1.Items.Clear();
                show();

            }

        }


        //右键菜单删除
        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count != 0)
            {
                string SongName = listView1.SelectedItems[0].SubItems[0].Text;
               if( PlayList.delete(SongName)==false)
               {
                   MessageBox.Show("该歌曲正在播放,不能删除!");
               }
                listView1.Items.Clear();
                show();

            }
        }

什么样动态爆发字数点歌

private void SelectSongFromWords_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 12;i++ )
            {
                ListViewItem li = new ListViewItem();
                li.Text = (i + 1) + "个字";
                li.Tag=(i+1);
                listView1.Items.Add(li);
            }
        }

猜数小游戏相关代码

public int num = 0;   //随机数
        public int count = 0;  //猜的次数

        private void button1_Click(object sender, EventArgs e)
        {
            number.Clear();
            Random r = new Random();
            num = r.Next(1, 100);  //返回0~100的整数,包含1不包含100
            button2.Enabled = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {

            if (Convert.ToInt32(number.Text) > num)
            {
                MessageBox.Show("大了点.再猜!");
                count++;
            }
            else if (Convert.ToInt32(number.Text) < num)
            {
                MessageBox.Show("小了点,再猜!");
                count++;
            }
            else
            {
                count++;
                MessageBox.Show("恭喜你,猜中了!!!一共猜了" + count + "次");
            }
        }

 到此时,前台就基本上是写完了,还有一些此外职能都分外的简练,只是部分sql语句的题材了,这里就不一一体现了.

 

后台的话由于时间涉及,我就不一一的来得界面图了,只将一些重大代码做个彰显

 

作者简介

马修(马修)•托马斯(Thomas)(Matthew托马斯),作家,出生于花旗国伦敦,毕业于法兰克福大学。获美利坚同盟国霍普(Hope)金斯大学文艺研究生及米利坚加州大学欧文(Owen)分校方法研究生双学位。

《不属于大家的世纪》是马修(Matthew)倾注10年心血完成的小说处女作,故事围绕着爱尔兰裔美利坚合众国女人Irene的一世举行。在老公身患早发性阿
尔茨海默病之后,家庭六人的活着与民用追求都遭逢了强烈的冲击,作者淋漓尽致地勾画了经常中产阶级家庭的有血有肉争论与苦楚。这本史诗色彩的家庭小说,流动着香甜而动人的情愫,更浓缩着美利坚合众国社会半个多世纪以来的民生百态和世事变迁。

二零一三年9月,《不属于我们的百年》成为轰动London书展的话题大书,西蒙(Simon)·舒斯特以超过百万法郎的天价买下版权,其电影版权由好莱坞第一文艺制片人斯考特·鲁丁购得。著作于夏天若是问世,便赢得极高评论,同时入围包括弗莱厄蒂-邓南首作奖、大不列颠及英格兰联合王国弗里奥教育学奖、大英帝国布莱克(Black)纪念奖、新德里国际医学奖、卫报首作奖在内的多项大奖提名,并荣登《伦敦时报》《华盛顿(华盛顿)邮报》《出版人周刊》《娱乐周刊》等年份超级畅销小说榜,收获称誉无数。

后台

咋样通过button按钮浏览本地资源管理器,并将图纸显示到控件中

 public string Singer_photo_url;     //保存歌手图片的后半部分路径
        public string url;       //歌手图片的绝对路径

//点击浏览按钮,添加图片
        private void button3_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = " bgtr|*.jpg;*.png;*.gif"; //内部筛选符合条件的文件
            DialogResult result = openFileDialog1.ShowDialog();
            if (result == DialogResult.OK)//证明用户双击(选中了)一个文件,我就获取路径
            {
                //相对路径
                Singer_photo_url = openFileDialog1.SafeFileName;
                //绝对路径
               url = openFileDialog1.FileName;
                //给PictureBox的Image属性赋值               
                  pictureBox1.Image = Image.FromFile(url);           
                   MessageBox.Show("请选择正确的文件类型!");
                   Singer_photo_url = null;
            }


        }

哪些选拔文件夹目录

 //浏览
        private void btnselect_Click(object sender, EventArgs e)
        {
            DialogResult result = folderBrowserDialog1.ShowDialog();
            if (result == DialogResult.OK)
            {
                txtNewURL.Text = folderBrowserDialog1.SelectedPath;
            }
        }

怎么着划分文件到对应文件夹下

                Directory.Delete(txtNewURL.Text);   //删除事先存在的文件夹
                Directory.Move(txtNowURL.Text, txtNewURL.Text); //将原文件夹中的内容剪切到新文件夹中
                UpdateSongURl();    //将新路劲保存到数据库

怎么着复制文件到指定文件夹下

 // 移动歌手照片文件到指定的目录
                            if (!string.IsNullOrEmpty(SongURl))
                            {
                                if (url != Help.songurl + SongURl)
                                {
                                    File.Copy(url, Help.songurl + "\\" + SongURl, true);
                                }

                            }

 

如上就是全方位MyK电视的所有代码了,因为我是初我们第一次写那些好不容易相比较大的门类,所以有写得不得了的地点,和得不到兑现的效果,大家就见谅哈~^_^. 

传媒评说

这部随笔是对爱与人类精神的问讯,赞颂了人命强大的适应性与复原力,和爱最后可以超越于人生逆境之上的能力。

犹如大家从其他经典医学作品中所收获的欣喜一样,《不属于大家的世纪》也尘埃落定如此,这得益于它对个体生活与民用经历的普遍性的微小捕捉和典型表现。

——《华盛顿(华盛顿(Washington))邮报》

从《纠正》到《防守的艺术》,这么多年来,终于又有一部美式史诗般的大作出现,它预示着当代经济学的突破。就是当年,这本讲述皇后区的一个常见爱尔兰移民美庭的长篇故事,以清纯又别出心裁的态度,谱写了灵魂,和感人至深的角色。

——《娱乐周刊》 必读清单

至于心智的奥秘不会比心灵少。而在《不属于大家的世纪》里,马修(马修(Matthew))•Thomas的作文优异诠释了这两者,并对二十世纪米利坚中产阶级一代举办了完美的辨析。全都在这本书里——关于我们怎么着生活,大家怎么去爱,我们怎么死去,大家怎么坚定不移。托马斯(Thomas)打造了一本具有史诗感而又有钱着许多微薄快乐的出色的小说。怀着既激发又谦卑的心境读这样的一本书的感觉好极了。

——《大家赶到终点》作者 布克奖提名小说家 约书亚(乔舒亚)(约书亚)•费里斯(Rhys)

《不属于大家的百年》是一部极其感人的著述,对于艾琳(Irene)•图穆蒂的影象——这位妈妈、妻子、孙女、爱人、护士、看护人、嗜酒者、上流社会的逐梦者、俭约之人的栽培,是当真的文艺真实。

——《防守的不二法门》作者  查特•哈巴克(Buck)

坦言说,这本小说就是真正自我,是漫天的真人真事,除去真实而无他。《不属于大家的世纪》给我们带来了深厚的、绝大范围内的有关读书的意趣,是这种令你蜷缩在家里的沙发上忘却了时光、是你应该要做一些事情时却还忍不住偷偷去阅读它的这种乐趣。小说的文字可以地诠释了哪些是真的的史诗,包围着这场伟大而华丽的碎片的正是属于大家的美利哥一代。请不要怀疑我所说的。那本书的每一页,都泛着作者不懈的商讨的天赋,和一颗慷慨而填满人性的心,它所带给您的撼动不仅像划破黑暗天际,更是在你合上它的末尾一页时仍久久不忍释怀,并且将它交给你所爱的人。只要有像《不属于大家的百年》这样的小说存在,只要有像马修(马修(Matthew))•Thomas那样的思想家存在,那么些作品的花样就跨越了留存自身,而代表着万马奔腾与悸动。

——《漂亮的子女们》作者 查理(Charles)•博克

在这本强大而深刻的处女作小说中,Thomas在对爱尔兰工人阶级环境优秀的观测当中巧妙地挑起一个才女的百年,创立出一幅关于美利坚联邦合众国二十世纪社交动态的显著肖像。他将心理的诚实和谐融入到小说的肌理当中,创制出令人难忘的叙事。

——《出版人周刊》五星书评

《不属于我们的百年》卓绝描绘了斗争阶层的各样、大家对家园利益的掩护与渴望,以及大家咋样作答突如其来的晦气。它像主人公Irene一样散发着强烈的古道热肠、慷慨与令人难忘的魅力,这是一位“我用双手撑起全方位家”的主人翁。

——《X项目》、《你觉得自己是坏人》作者 吉米‧薛帕尔德

一部有关梦想、心碎、家庭、失败的宏伟随笔,极具戏剧性的强有力张力的著述。《不属于我们的百年》里不曾堆砌、没有虚张声势,相反,有着深切的珍视与领悟。作者看似刻意地描写着四人不如何的生存,但一味是向我们揭破着决定我们实在生活的广阔创立的真理,这就是:你有自由采取任何你想要的生活,但归根结蒂你永远是你协调。

——《君子》杂志

有力的处女作随笔,一个忠于而亲切的家中故事,充满着震撼人心的能力,丰满,广阔……托马斯(Thomas)先生在点滴的范围内(固然这是一个杂草丛生丛生的故事),以可靠的直觉长远爱尔兰人物角色的害怕、勇气和愤怒,使人感受到更甚于艾丽斯•麦德莫式的品格……读完这样一本情节环环相扣的书,感觉像是经历了终身,再体会时,会感到生命的一体都已如此不同……

——《伦敦时报》有名书评人 珍妮特(珍妮特(Janet))•马斯林

这位天天扮演着贵族角色但是不停出错的巾帼,是马修(马修)•托马斯(Thomas)幸运的处女作《不属于我们的百年》的主题,令人频频地在回想中徘徊:在这一场没有的二十世纪美利坚合众国梦之末找到她们的自我实现,并拿走了积重难返的尊崇与严穆。

——《时尚》杂志

小说以出人意料的转账、错误的允诺、辜负与争执,生动而盛开地映射了生存到底该是(或不该是)咋样的……《不属于我们的世纪》是一部坚实的处女作,构建起一个悟性而又感人、维度丰满的失落世界。

——《雅加达时报》

这本极具影响力的小说,讲述了集努力、失落、复原力于寥寥的护士艾琳(Irene)•图穆蒂的随身,这么些血性的爱尔兰移民后裔的孙女,执着追求的一场遥遥无期的美利坚同盟国梦。

——《奥普拉》杂志

Thomas以惊人的眼光和讲故事的技巧,令读者第一时间相信利里一家都是顶级的人,生活在充满未知变故的活着中。但他们所经历的,其实与其他大多数家园正在或者将要经历的几乎从未什么样不同。它以美好而惋惜的调头彰显了我们好像平淡无奇(其实不然)的生存。《不属于我们的百年》展现了俺们身为人的高雅。

——《毕尔巴鄂公报》

从麦克(麦克(Mike))德莫特、威尔(Will)iam•肯尼迪(Kennedy),到Eugene•奥尼尔(Neil)(O’Neil)的家园伦理剧等一级的美利坚合众国爱尔兰理学代表,《不属于咱们的世纪》是站在那一个巨人肩膀上的作文。

——《爱尔兰弥利坚杂记》

它令人那样不堪回首以至于你很想放下它;但它又是这般雅致地蚀刻着你的心,而使你不忍释卷。Thomas笔下这篇“从容不迫”的小说诗,充满着理性而温和的对于人性的明白。当读到书的终极,我们仅收获一丝期待的时候,这种感觉似乎已经历了一个真正的家园正剧。

——《伊斯兰堡日报》

各种经历过自己所爱之人走向衰老的人都了解,微小之处往往总会带来最具破坏性的浮动:比如不像下周那么仍可以紧握住的手;记念力看似微小但实则领会地凋零;Thomas将这一个细小的细节卓越地戏剧化地描绘出来,整合并创建了一番凝聚了有力激情性的阅读经验。

——布鲁塞尔时评

动人的小说体,描绘着极平凡的家常和令人心碎的时刻……通过那多少个家中的故事,Thomas带大家走过一场米国式的旅程——平时的活着和它的有所复杂,大家生存里那么些坚贞不屈的故事,和无名接受着它们的英雄们。

不带其他花哨与喧闹,这本书如此流畅、直截了本地进入正题,在结尾处又给人这么不堪回首的感触,让自家感到这就是自我所真实活着的全套。我热切地盼望着托马斯(Thomas)先生的第二部、第三部作品。他是二十一世纪以来的大师级诗人。

——明斯克•史密斯(Smith) 《纽约社交日志》

经典语录

“‘永远也休想爱上此外一个人。’大姨边说边拿起这份文件,将它们塞进了温馨保留戒指的办公桌抽屉里,‘这么做只会伤了你协调的心。’”

“当你觉得这么些世界充满了俯瞰自己的大个子,当您感觉到仰着头成为了一种挣扎,我梦想你可以回想生活中除去成功还有更多的事物值得你去追求。”

“她前几日才知道,原来这世上有些地点竟充斥着比其他地方更多的甜蜜。除非您了然这种地点的留存,否则就只会安于现状。”

编者感想

《不属于我们的世纪》是一部细致而感人的处女作,它并从未对宏伟的光景举办精雕细刻的抒写,而专注于捕捉关于精神真正的特写。细腻的写作,感人至深,令人难忘,就像是一幅20世纪末美利坚联邦合众国社会的印象,它史诗的魄力,带读者感受了一段势不可挡而记忆犹新的旅程。获2014年弗莱厄蒂-邓南首作奖、英帝国布莱纪念奖、约翰(约翰(John))·加德纳(Gardner)小说图书奖决选著作,相信在漫漫的光阴里,作者可以给大家带来更多的优异小说。

文字编辑:青年记者站——梁晓欣