2017-01-16 7 views
0

私は私の窓のタイマーを起動し、停止しようとしたが、それは動作していないようで、私のコードを参照してください。タイマーはどのように.netで動作しますか?

private void button1_Click(object sender, EventArgs e) 
{ 
     timer1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
     MessageBox.Show("Hello"); 
     timer1.Stop(); 
} 

それは何度も何度もメッセージを表示し、それは停止しません。私にいくつかのアイデアを教えてください、私はあなたの助けに非常に感謝しています。

+1

多分、このリンクはあなたの問題を解決するのに役立ちます。 http://stackoverflow.com/questions/4563704/c-sharp-how-do-you-stop-a-timer – Joseph

+0

これは理解するのに役立ちますhttp://stackoverflow.com/a/4563738/5001784 –

答えて

2

のメッセージボックスを表示する前に、タイマーを停止する必要があります。さもなければ彼らは積み重なります。

ありワンショット・タイマなるように構成することができるSystem.Timers.Timerですが、他のタイマーのための一般的なアプローチは、次のとおりです。

タイマーイベントが発生し、その後、タイマーを停止し、事をやるとは開始タイマーを再起動します。

+0

ありがとうあなたの答え。 n回タイマーを再実行する方法はありますか? n回の "for"ループは機能しません。 –

+0

'int timerRanHowManyTimes = 0'のようなクラス変数が必要で、すべてのタイマーイベントで変数が増加します。その変数の値が希望の回数よりも小さい場合にのみ、イベントでタイマーを再起動してください。 –

0

ラインMessageBox.Show("Hello"); で実行は、「OK」ボタンを押して、ユーザを待ってそこに停止しますので、ユーザーがメッセージボックスと相互作用し、タイマーがこのように動作し続けるまで、ラインtimer1.Stop(); は到達できません。 。

+0

私は何か新しいことを学ぶと思う、ありがとう –

関連する問題