2012-02-14 17 views
1

私はファイルから読み込み、それをラベルを通してストリームするコードを持っています。私は、チェックボックスをオフにして、それはそれ、これは私のコードタイマーを再起動する方法は?

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked == true) 
     { 
      timer1.Enabled = true; 
      timer1.Start(); 
     } 
     else 
     { 
      timer1.Enabled = false; 
     } 
    } 
    private int start = 0; 
    private string lyricspath = @"lyrics.txt"; 
    private void timer1_Tick(object sender, EventArgs e) 
    { 
     TextReader reader = new StreamReader(lyricspath); 
     string[] read = File.ReadAllLines(lyricspath); 
     string join = string.Join(" ", read); 
     int number = join.Length; 
     start++; 
     string str = join.Substring(start, 15); 
     if (start == number - 15) 
     { 
      start = 0; 
     } 
     label1.Text = str; 
    } 

ある

を中断したところから拾い、再びそれを確認するときが、タイマーが、私は、その後のチェックを外し、各時間をかけて完全に起動するようにするどのような方法がありますチェックボックスをオンにしますか?

+0

タイマーのインスタンスも共有する必要があります。 – Candide

答えて

0

1000あなたはタイマーをリセットする必要があり、チェック変更イベント、上ゼロにあなたのスタートをリセットする場合:

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked == true) 
     { 
      start = 0; 
      label1.Text = string.Empty; 
      timer1.Enabled = true; 
      timer1.Start(); 
     } 
     else 
     { 
      timer1.Enabled = false; 
     } 
    } 

を私は、フォームがロードされたときにタイマーを開始する同様のプロセスを持っています。フォームを開いたままにしておくと、フォームを開いたままにしておくことができます。そうであれば、タイマーカウントをゼロにリセットし、処理をやり直します。

+0

合意しましたが、ラベル1のテキストを空にリセットする必要があります。 – David

+0

感謝したtyvm:D –

+0

@Davidが同意しました。私はちょうどタイマーをリセットする方法を示していた。 – Taryn

1

は、Intervalプロパティを設定し...ミリ秒単位で... = 1秒

+0

私は現在、間隔がトラックバーで設定されている 問題は問題ではありません。ボックスをオフにしてもう一度チェックすると、ファイルの読み込みを続けます。 –

1

Timer.EnabledTimer.Start()は、機能的に同等です。

私は、あなたがスタート変数をリセットする必要があると思われます。

if (checkBox1.Checked == true) 
{ 
    start = 0; 
    label1.Text = string.Empty; 
    timer1.Start(); 
} 
else 
{ 
    timer1.Stop(); 
} 

編集コメントあたりのラベルのリセットを含むように。

+0

合意しましたが、ラベル1のテキストもクリアする必要があります。 – David

関連する問題