我正在尝试创建一个反应游戏,由Windows窗体,随机显示按钮和TestBox组成,以计算命中数。
到目前为止,这是我的代码。当我调试变量" i"收到值9,为什么?!
private void button1_Click(object sender, EventArgs e)
{
int i;
Random x = new Random();
for (i = 0; i < 10; i++)
{
Point pt = new Point(
int.Parse(x.Next(400).ToString()),
int.Parse(x.Next(250).ToString())
);
button1.Location = pt;
textBox1.Text = "Hits: " + i;
}
}
我是C#的新手,我搜索了很多,但我想我无法找到我的错误。
答案 0 :(得分:0)
正是因为这条线。
textBox1.Text = "Hits: " + i;
你将上面的句子放在循环中,所以当循环停止时,“i”变量的值为9,它将显示在文本框中。
点击按钮后,它会移动按钮的位置10次,然后将“i”的值放入文本框中。
要使其正确,请在代码中进行以下更正。
int i=0; // Define i at class level
private void button1_Click(object sender, EventArgs e)
{
Random x = new Random();
i++;
Point pt = new Point(
int.Parse(x.Next(400).ToString()),
int.Parse(x.Next(250).ToString())
);
button1.Location = pt;
textBox1.Text = "Hits: " + i;
}