小编Axe*_*xel的帖子

遍历列表C#

我正在玩一些C#,我正在编写钢琴应用程序.

每当用户点击钢琴音符时,我将声音的位置(.wav)存储到列表中...以下是button1_MouseDown方法中的一些代码.

if (e.Button == MouseButtons.Left)
   {
       SoundPlayer sp = new SoundPlayer();
       string musName = Convert.ToString(mk.pitch);
       string loc = @"D:\OneDrive\Year 2 Semester 1\OOP\Notes-Sound files\Notes-Sound files\mapped\" + musName + ".wav";
       sp.SoundLocation = loc;
       sp.Play();
       music.Add(loc);
    }
Run Code Online (Sandbox Code Playgroud)

现在,我希望遍历循环以一次性播放所有单击的键.我这样做如下(当用户点击播放按钮时)

int k = 0;
for (k = 1; k < music.Count; k++)
{
   SoundPlayer sp = new SoundPlayer();
   sp.SoundLocation = music[k];
   sp.Play();
 }
Run Code Online (Sandbox Code Playgroud)

问题是,每当点击播放按钮时,只播放按下的最后一个音符.但是,当我调试时,不知何故,所有音符都被播放.有任何想法吗?

c# for-loop list piano soundplayer

2
推荐指数
1
解决办法
246
查看次数

标签 统计

c# ×1

for-loop ×1

list ×1

piano ×1

soundplayer ×1