因此,作为一个学习过程,我正在尝试做一些练习,我把自己放在一边,所以我试图让一个按钮给我一个随机值,我有的列表,但当他点击按钮再次,我想要另一个随机值,不包括它刚使用的那个。它应该工作正常,除了每次点击后列表似乎被“重写”,我认为这是因为代码是按钮点击事件,所以我有两个问题:我如何使这个工作原样(意思是我保持列表的位置,我只是使它不会被“重置”),我可以在哪里放置列表,以便它不会在每次按钮点击后“重置”,但与我能够在按钮点击事件中使用它。我试过把它放在其他地方,它只是说“当前语境中不存在名字vowelz”。
public void vowelbutton_Click(object sender, EventArgs e)
{
Random randomizer = new Random();
List<Keys> vowelz = new List<Keys>();
vowelz.Add(Keys.A);
vowelz.Add(Keys.A);
vowelz.Add(Keys.A);
vowelz.Add(Keys.B);
var indexz1 = randomizer.Next(0, vowelz.Count);
var keyz1 = vowelz[indexz1];
listBox1.Items.Add(vowelz[indexz1]);
vowelz.RemoveAt(indexz1);
}
答案 0 :(得分:0)
我想你想要这样的东西......
public class MyClass
{
protected List<Keys> vowelz = new List<Keys>();
public void vowelbutton_Click(object sender, EventArgs e)
{
Random randomizer = new Random();
vowelz.Add(Keys.A);
vowelz.Add(Keys.A);
vowelz.Add(Keys.A);
vowelz.Add(Keys.B);
var indexz1 = randomizer.Next(0, vowelz.Count);
var keyz1 = vowelz[indexz1];
listBox1.Items.Add(vowelz[indexz1]);
vowelz.RemoveAt(indexz1);
}
}
答案 1 :(得分:0)
您是否尝试在其他方法中声明List
? vowelbutton_Click
方法无法访问它。这应该有用。
List<Keys> vowelz = new List<Keys>
{
Keys.A, Keys.B, Keys.B, Keys.B
}
public void vowelbutton_Click(object sender, EventArgs e)
{
Random randomizer = new Random();
var indexz1 = randomizer.Next(0, vowelz.Count);
var keyz1 = vowelz[indexz1];
listBox1.Items.Add(vowelz[indexz1]);
vowelz.RemoveAt(indexz1);
}
答案 2 :(得分:0)
重复按下按钮播放此示例...
private List<Keys> tmpVowelz = null;
private Random randomizer = new Random();
private List<Keys> vowelz = new List<Keys>() {
Keys.A,
Keys.A,
Keys.B,
Keys.B
};
public void vowelbutton_Click(object sender, EventArgs e)
{
if (tmpVowelz == null)
{
listBox1.Items.Clear();
tmpVowelz = new List<Keys>(vowelz);
}
if (tmpVowelz.Count > 0)
{
int index = randomizer.Next(tmpVowelz.Count);
Keys key = tmpVowelz[index];
listBox1.Items.Add(tmpVowelz[index]);
tmpVowelz.RemoveAt(index);
if (tmpVowelz.Count == 0)
{
tmpVowelz = null;
}
}
}