我是编码的新手,我正在用C#创建一个Windows窗体应用程序。我无法确定如何跟踪correct
和incorrect
响应的数量。单击按钮时,如果响应为correct
,则标签说明正确。我想要一个不同的标签来计算它说正确和不正确的次数。这就是我的想法,但没有奏效。
int add = 0;
add = int.Parse(correct.Text);
if (label1.Text == "Correct")
{
correct.Text = add++;
}
else
incorrect.text = add++;
correct
和incorrect
是我的标签名称。
这是我的按钮点击事件,有很多相似的事情。
private void G_Click(object sender, EventArgs e)
{
if (go.Visible == true)
{
go.Visible = false;
Random rnd = new Random();
int y = rnd.Next(1, 7);
if (y == 1)
{
eo.Visible = true;
}
if (y == 2)
{
ao.Visible = true;
}
if (y == 4)
{
dd.Visible = true;
}
if (y == 5)
{
go.Visible = true;
}
if (y == 6)
{
eeo.Visible = true;
}
timer1.Start();
label1.Text = "Correct";
}
else
{
label1.Text = "Incorrect";
}
private int correctCount = 0;
private int incorrectCount = 0;
if (label1.Text = "Correct";)
{
correctCount++;
correct.Text = correctCount.ToString();
}
else
{
incorrectCount++;
incorrect.Text = incorrectCount.ToString();
}
答案 0 :(得分:5)
当前问题是Text
属性的类型是string
,而不是int
- 您必须将其设置为 text ,而不是数字。幸运的是,您只需在ToString
上致电int
即可获得string
代表。但是,我建议还有其他一些事情要改变。
我强烈建议你将单独的计数器作为变量。虽然可以继续解析您的标签,但它们可以更简单地输出。所以你可能有:
// Fields
private int correctCount = 0;
private int incorrectCount = 0;
...
// Wherever your code is
if (correctAnswer)
{
correctCount++;
correct.Text = correctCount.ToString();
}
else
{
incorrectCount++;
incorrect.Text = incorrectCount.ToString();
}
请注意此处的correctAnswer
条件 - 我们不知道设置label1
文字的内容,但我建议这样做是正确的来自的地方从相同的条件更改正确/不正确的计数器。同样,将label1
视为输出,而不是反馈系统。
答案 1 :(得分:0)
class fields =在方法之外声明并直接在类中的变量 局部变量=在方法
中声明的变量using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace deleteMe
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int correctCount = 0; // field
private int incorrectCount = 0; // field
private void G_Click(object sender, EventArgs e)
{
if (go.Visible == true)
{
go.Visible = false;
Random rnd = new Random();
int y = rnd.Next(1, 7); // local variable
if (y == 1)
{
eo.Visible = true;
}
if (y == 2)
{
ao.Visible = true;
}
if (y == 4)
{
dd.Visible = true;
}
if (y == 5)
{
go.Visible = true;
}
if (y == 6)
{
eeo.Visible = true;
}
timer1.Start();
incorrect.Text = "Correct";
}
else
{
incorrect.Text = "Incorrect";
}
if (label1.Text = "Correct")
{
correctCount++;
correct.Text = correctCount.ToString();
}
else
{
incorrectCount++;
incorrect.Text = incorrectCount.ToString();
}
}
}
}
==平等。 (用于比较2个值)
=分配一个值。 (用于初始化变量或字段)