为什么我的计数器不算?

时间:2017-04-02 13:00:31

标签: c#

这让我很惊讶。最简单的事情之一是不起作用,做出反击。我在c#中制作了一个有点游戏应用程序,还有一个计时器来计算时间。很简单吧?我知道如何对此进行编码,这是我以前做过的事情,但我不明白为什么它现在还没有工作。

int i = 0;
i++;
label1.Text = i.ToString();

label1.Text变为1,没有其他事情发生。也用计时器试了这个,但它在1中自由了。我知道这篇文章并不能真正帮助其他人,但是非常令人沮丧。

2 个答案:

答案 0 :(得分:2)

为什么你的label1文本总是得到1?

原因很简单,每次到第一行时,我都是0:

// Line 1
int i = 0;  // declaring and setting i to 0
// Line 2
i++;        // incrementing i to 1 
// Line 3
label1.Text = i.ToString();  // displaying i (which is equal to 1)

然后再次进入第1行并设置i = 0等...

我认为你有一个UI应用程序(win form,web form等...) 你已经提到过你有一个工作正常的计时器和一个输出增量i变量的标签。

如前所述,为了查看标签的更改,您可以使用以下循环:

int length = 100;  // for example
for (int i = 0; i < length; i++)
{
    label1.Text = i.ToString();
}

label1文本中的输出将为0,然后是1,然后是2 ....最后是99。 显然,你无法在运行时看到除最后一个99之外的所有值,但你可以调试并查看它是如何工作的。

我认为,你需要的是每次计时器打勾时你的标签文字都会改变。 下面是一个代码示例,您可以如何实现它:

private int i = 0; // initialized once in this UI class

private void timer1_Tick(object sender, EventArgs e)
{
    label1.Text = i.ToString();
    i++; // will increment by one each time the timer is ticking
}

将您的计时器间隔设置为~1000,这样您就可以清楚地看到文本标签在运行时的增量。

答案 1 :(得分:1)

如果你想增加它,你必须在循环中添加递增逻辑,如forwhile循环:

如果您想使用计时器计算某些内容,请参阅此问题:here