我似乎无法让这个循环起作用。
点击提交按钮十次后,它应恢复为主窗体;相反,只要点击一次提交,它就会恢复。
private void submit_Click(object sender, EventArgs e)
{
Form1 mainMenu = new Form1();
int repeat = 0;
do
{
num1.Text = A1.firstRandomNumber().ToString();
num2.Text = A1.secondRandomNumber().ToString();
repeat++;
} while (repeat <= 10);
if (repeat == 11)
{
mainMenu.Show();
this.Hide();
}
}
答案 0 :(得分:3)
每次点击都会发生submit_Click
内的所有内容。这包括重新定义repeat
,将其设置为0
,循环以将其完全递增为11
,并交换哪个表单可见。
如果你想计算点击次数,你必须在处理程序之外建立你的计数器,以便它可以递增:
private int repeatSubmit = 0;
private void submit_Click(object sender, EventArgs e)
{
if (repeatSubmit < 10)
{
num1.Text = A1.firstRandomNumber().ToString();
num2.Text = A1.secondRandomNumber().ToString();
repeatSubmit++;
}
else
{
mainMenu.Show();
this.Hide();
repeatSubmit = 0; // ready for the next time `this` form is shown
}
}
答案 1 :(得分:2)
只是为了澄清,您正在等待用户点击按钮10次?或者循环应该模拟10次点击?
此循环将进入(执行)并设置num1
和num2
,添加一个重复,然后执行10次直到repeat == 11
,然后它将显示主菜单
我认为您所寻找的代码如下:
private void submit_Click(object sender, EventArgs e)
{
...
repeat ++;
num1.Text = A1.firstRandomNumber().ToString();
num2.Text = A2.secondRandomNumer().ToString();
if(repeat >=10)
{
mainMenu.Show();
this.Hide();
}
}
答案 2 :(得分:2)
正如您的代码所示,在1次单击时,您将进入循环,然后继续增加计数器,直到它等于11,然后退出循环并显示主菜单。基本上你不计算点击次数。
您要做的是将计数器存储在某处,可能作为类变量。然后每次进入点击功能时,您都会增加。当点击功能输入10次后,你会进入你的if语句。
private int clickCount = 0;
private void submit_Click(object sender, EventArgs e){
clickCount++;
// Other code that happens on a click
if (clickCount == 10){ // 10th click show main menu
// Code to show main menu
}
}
答案 3 :(得分:0)
在第一次点击提交时它会循环显示,如果我理解你想要实现的目标,你根本不需要一个循环,每次按下按钮时只需一个计数器。