c#有没有办法阻止foreach循环,直到事件再次发生?

时间:2017-08-21 09:46:28

标签: c# arrays foreach

我目前正在尝试编写一个foreach循环,我将其编码到我的按钮点击事件中。我遇到的问题是循环直接进入数组的末尾,我想要它做的是停止数组中的每个字符串,直到再次单击按钮然后它将移动到下一个字符串。我应该休息一下吗或继续;?

foreach (string s in weapons)
{
    pictureBox9.Image = Image.FromFile(s + ".png");
    counter++;
    continue;
}

1 个答案:

答案 0 :(得分:2)

停止使用foreach循环,因为它会在您停止/暂停循环时冻结您的UI。

使用类似的东西。

counter++;
if(counter >= weapons.Count)
{
    counter = 0;
}
string weapon = weapons[counter];
pictureBox9.Image = Image.FromFile(weapon + ".png");

你已经有了一个柜台。如果按下按钮则增加它并且如果它被高位重置则增加它。然后,您可以从列表中选择图像,至少可以更新图像。

一个很好的改进是在开始时加载所有图像并将它们放在一个列表中以替换weapons列表。您也可以通过counter访问列表中的项目。