如何在按钮点击之间保留列表?
How do I keep a list between button clicks?
所以作为一个学习过程,我正在尝试做一些我自己做的练习,所以我试图获得一个按钮,在我拥有的列表之间给我一个随机值,但是当他点击再次按下按钮我想要另一个随机值,不包括它刚刚使用的那个。它应该工作正常,除了列表在每次点击后显示为 "rewritten",我认为这是因为代码是按钮点击事件,所以我有 2 个问题:我如何使它按原样工作(意思是我将列表保留在原处,我只是做了它所以它不会得到 "reseted"),我可以把列表放在哪里,这样它就不会在每次之后得到 "reseted"单击按钮,但我可以在按钮单击事件上使用它。我试过把它放在其他地方,它只是说 "the name vowelz does not exist in the current context".
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);
}
我想你想要这样的东西...
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);
}
}
您是否尝试过用另一种方法声明 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);
}
通过重复点击按钮来玩这个例子...
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;
}
}
}
所以作为一个学习过程,我正在尝试做一些我自己做的练习,所以我试图获得一个按钮,在我拥有的列表之间给我一个随机值,但是当他点击再次按下按钮我想要另一个随机值,不包括它刚刚使用的那个。它应该工作正常,除了列表在每次点击后显示为 "rewritten",我认为这是因为代码是按钮点击事件,所以我有 2 个问题:我如何使它按原样工作(意思是我将列表保留在原处,我只是做了它所以它不会得到 "reseted"),我可以把列表放在哪里,这样它就不会在每次之后得到 "reseted"单击按钮,但我可以在按钮单击事件上使用它。我试过把它放在其他地方,它只是说 "the name vowelz does not exist in the current context".
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);
}
我想你想要这样的东西...
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);
}
}
您是否尝试过用另一种方法声明 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);
}
通过重复点击按钮来玩这个例子...
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;
}
}
}