1

我正在用 C# 制作一个小游戏,当分数为 100 时,我希望两个标签显示一秒钟,然后它们需要再次不可见。

目前我在Form1中:

void startTimer(){
 if (snakeScoreLabel.Text == "100"){
  timerWIN.Start();
 }
}

private void timerWIN_Tick(object sender, EventArgs e)
{
  int timerTick = 1;
  if (timerTick == 1)
  {
    lblWin1.Visible=true;
    lblWin2.Visible=true;
  }
  else if (timerTick == 10)
  {
    lblWin1.Visible = false;
    lblWin2.Visible = false;
    timerWIN.Stop();
  }

  timerTick++;

}

定时器的时间间隔是 1000 毫秒。

问题=标签根本没有显示

计时器对我来说很新,所以我被困在这里:/

4

2 回答 2

1

尝试这个 :

void startTimer()
{ 
     if (snakeScoreLabel.Text == "100")
     {
      System.Timers.Timer timer = new System.Timers.Timer(1000) { Enabled = true }; 
      timer.Elapsed += (sender, args) => 
        { 
           lblWin1.Visible=true;
           timer.Dispose(); 
        }; 
     }

} 
于 2012-10-24T05:36:33.060 回答
0

尝试多线程 System.Threading.Timer :

public int TimerTick = 0;
        private System.Threading.Timer _timer;
        public void StartTimer()
        {
            label1.Visible = true;
            label2.Visible = true;
            _timer = new System.Threading.Timer(x =>
                                                    {
                                                        if (TimerTick == 10)
                                                        {
                                                            Invoke((Action) (() =>
                                                                                 {
                                                                                     label1.Visible = false;
                                                                                     label2.Visible = false;
                                                                                 }));
                                                            _timer.Dispose();
                                                            TimerTick = 0;
                                                        }
                                                        else
                                                        {
                                                            TimerTick++;
                                                        }

                                                    }, null, 0, 1000);

        }
于 2012-10-24T06:26:51.410 回答