C#按钮每种音乐都有

时间:2018-09-20 01:49:30

标签: c#

我在尝试使程序为每首歌曲制作按钮时遇到了一些困难,比如说我在一个文件夹中有6首歌曲,程序应该做的就是将它们全部插入并为每首歌曲生成按钮,当我按下它们时,播放自己的歌曲。我什至无法想到从哪里开始,我正在运行FolderBrowsingDiaglog,我只需要弄清楚这部分。我添加了您提供给我的代码,这给了我一个错误,即我在路径中包含非法字符。

private void button2_Click(object sender, EventArgs e)
    {
        FolderBrowserDialog folderChoice = new FolderBrowserDialog();
        if (folderChoice.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            int i = 0;
            foreach (string fname in System.IO.Directory.GetFiles(folderChoice.SelectedPath + @"*.mp3"))
            {
                Button btn = new Button
                {
                    Text = fname.Split('\\').LastOrDefault(),
                    Location = new Point(10, 10 + i++ * 30),   //sample x,y
                    Size = new Size(100, 20),
                    Tag = fname,   //For having the file location
                };
                this.Controls.Add(btn);
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

创建按钮很容易:

if(folderBrDlg.ShowDialog()==DialogResult.Ok)
{
    int i = 0;
    foreach(string fname in System.IO.Directory.GetFiles())
    {

         Button btn = new Button
         { 
               Text = fname.Split('\\').LastOrDefault(),
               Location = new Point(10, 10 + i++ * 30),   //sample x,y
               Size = new Size(100,20),
               Tag = fname,   //For having the file location
               ....
         };
         btn.Click += (s, e) =>
         {
              string fileToPlay = (string)((Button)s).Tag; 
              //now you only have to play it.
         }
         this.Controls.Add(btn);
    }
}

更新

我在按钮的单击事件中添加了单击事件,单击每个按钮都可以获取相关文件的路径,而您只需要使用播放器即可播放该文件。

答案 1 :(得分:0)

这是我对问题的理解。 1.您要制作一个程序,当单击其中一个按钮时,播放六首歌曲之一

FolderbrowsingDialog将允许选择要播放的文件,但不允许您播放它们。考虑使用SoundPlayer类。 SoundPlayer将为您提供播放歌曲的功能,但是这些歌曲必须是.wav文件。Microsoft链接将帮助您更好地了解SoundPlayer类。

由此您应该能够完成程序。

https://docs.microsoft.com/en-us/dotnet/api/system.media.soundplayer?redirectedfrom=MSDN&view=netframework-4.7.2