1

我有一个计时器,可以在每个刻度上更改标签的文本。出于某种原因,它会停止并且不会继续循环。为什么?

        private int count = 0;
    private void timer1_Tick(object sender, EventArgs e)
    {
            string[] arr4 = new string[3]; // 4 
            arr4[0] = "one";
            arr4[1] = "two";
            arr4[2] = "three";

            if (count == 4)
            {
                count = 0;
            }
            toolStripStatusLabel1.Text = arr4[count];
            count++;
    }
4

1 回答 1

1

此外,当我的表单加载时,标签的文本是空白的。然后它转到 arr4[0]。当它再次循环时,文本从 arr[0] 开始。为什么文本首先是空白的,我该如何解决?

看起来您的原始问题已在评论中得到解答。我将从评论中回答您的第二个问题。

当您的程序启动时,您的timer1_Tick事件不会立即执行。在您的情况下,它第一次执行是在 5000 毫秒之后。所以标签会先显示为空白,然后更改为 arr4[0] 的值。如果你不想这样,你可以:

  • 在设计时在设计器中设置标签的值
  • 在运行时在构造函数中设置标签的值
  • 将数组的创建从计时器滴答事件中拉出来,这样您就不会每 5 秒重新创建一次,将其设为类变量,并在构造函数中创建它,然后在创建后立即将标签设置为 arr4[0]
于 2012-06-30T03:42:26.667 回答