2013-02-24 34 views
0

剩餘秒我有一個問題。我想在倒數計時器中保存剩餘秒數(例如,剩餘時間= 12秒),我想在變量中保存12秒。 這是我的代碼保存在倒數計時器

int order = 0; 
    bool right = true; 
    DispatcherTimer timer1 = new DispatcherTimer(); 
    private void timer_start() 
    { 
     timer1.Interval = new TimeSpan(0, 0, 0, 1); 
     timer1.Tick += new EventHandler(timer1_Tick); 
     timer1.Start(); 

    } 
    int remainingSecond; 
    int tik = 15; 
    void timer1_Tick(object sender, EventArgs e) 
    { 
     this.Timer.Text = tik.ToString(); 
     if (tik > 0) 
     { 
      tik--; 
      if (this.order >= 5) 
      { 
       timer1.Stop(); 
       if (right) 
       { 
        remainingSecond = tik; 
       } 
       else 
        remainingSecond = 0; 
      } 
     } 
     else 
     { 
      remainingSecond = 0; 
      timer1.Stop(); 
     } 
    } 

每次我寫「remainingSecond」,其值始終爲0。我希望remainingSecond值爲12。幫助我,請。由於

+0

寫入'TimeSpan.FromSeconds(1)',而不是'新的TimeSpan(0,0,0,1)'(創建1毫秒定時器)。 – 2013-02-24 06:41:33

+0

我認爲'remainingSecond = tik'是錯誤的,但我不知道如何糾正它 – wahyudierwin 2013-02-24 06:48:49

+0

感謝您的意見:D – wahyudierwin 2013-02-24 06:52:38

回答

1

您分配order = 0,但並沒有增加它的任何地方,並設置這個條件

if (this.order >= 5)這將不正確的。所以它會繼續減少你的tik,最後你的這個條件if (tik > 0)將會變成錯誤的。所以別的將被執行,它會將您的remainingSecond設置爲ZERO。這就是爲什麼你將ZERO作爲輸出。

你的計時器每隔1毫秒計時一次。該timer就會啓動,它會立即tick,當時order,你的else語句將得到執行,將設置remainingSeconds,將Stop計時器也是如此。所以點擊按鈕不會爲你做任何事情。

+0

有點擊按鈕的過程(有5個不同的按鈕,例如1,2,3,4,5),如果我們按錯順序點擊(例如2),'order ++',也可以'right' ,3,1,4,5) – wahyudierwin 2013-02-24 10:40:08

+0

那麼這個過程的代碼在哪裏? – Shaharyar 2013-02-24 10:49:49

+0

這是它(只有一個過程,其他過程是相同的)private void number1_Tap_1(object sender,System.Windows.Input.GestureEventArgs e) { this.order ++; if(this.order!= 1)this.right = false; }' – wahyudierwin 2013-02-24 10:55:53

1

嘗試設置間隔1秒鐘,而不是1毫秒

+0

感謝您的意見:D – wahyudierwin 2013-02-24 06:53:59

+0

'remainingSecond'的值仍然是相同的:( – wahyudierwin 2013-02-24 07:01:34