- PR -

Timer intervalについて

1
投稿者投稿内容
こうめい
常連さん
会議室デビュー日: 2004/08/31
投稿数: 30
投稿日時: 2004-10-07 13:17
色々試している初心者です。

下記のプログラムはVS.NETの例題からコピーしてきましたが、Timer1_Tickプロセスを2分ごとに実行するようにしたいのですが、どのようになおしたらいいかご教授願います。
処理の中身は、カウンターの値を1から10まで表示して、2分後に又1から10のカウンター値を表示できればいいと思っています。

(プログラム)
' 例 2
'この例では、ループが終了するまでの間、プロシージャが 600 ミリ秒ごとに実行されます。次のコードでは、フォームに Button1 という名前の Button コントロール、Timer1 という名前の Timer コントロール、および Label1 という名前の Label コントロールがあると仮定しています。

' Visual Basic
' This variable will be the loop counter.
Private counter As Integer

Private Sub InitializeTimer()
' Run this procedure in an appropriate event.
counter = 0
Timer1.Interval = 600
Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If counter >= 10 Then
' Exit loop code.
Timer1.Enabled = False
counter = 0
Else
' Run your procedure here.
' Increment counter.
counter = counter + 1
Label1.Text = "Procedures Run: " & counter.ToString
End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = "Stop" Then
Button1.Text = "Start"
Timer1.Enabled = False
Else
Button1.Text = "Stop"
Timer1.Enabled = True
End If
End Sub
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-10-07 15:10
>Timer1_Tickプロセスを2分ごとに実行するようにしたいのですが、
>どのようになおしたらいいかご教授願います。
>処理の中身は、カウンターの値を1から10まで表示して、2分後に又1から10の
>カウンター値を表示できればいいと思っています。
すみません。日本語が理解できません。

>Timer1.Interval = 600
Timer1.Interval = 1000 * 60 * 2 '2分
で解決するのでしょうか?
これだと2分おきに1・2・・・・10となります。

違う意図であれば、また質問を追加してください。
_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
こうめい
常連さん
会議室デビュー日: 2004/08/31
投稿数: 30
投稿日時: 2004-10-07 16:36
質問の意図を汲み取っていただきありがとう御座います。私がやりたいことはご指摘の通りです。えムナウさんの言うとおりTIMER1.INTERVALの指定したサイクルで表示するのかなぁと思っていましたが、INTERVALの時間を無視して処理するみたいです。2分おきに1・2・・・・10となってくれるのが希望です。TIMER1.INTERVALの数字を変えても表示する間隔がかわらないのです。

[
>Timer1.Interval = 600
Timer1.Interval = 1000 * 60 * 2 '2分
で解決するのでしょうか?
これだと2分おきに1・2・・・・10となります。

違う意図であれば、また質問を追加してください。

えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2004-10-07 17:38
Formに貼り付けたTimer1のプロパティでTimer1.Enabled はFalseになっていますか?
Timer1.Enabled の 初期値の意味です。

Private Sub InitializeTimer() はどこで呼んでいますか?
以下の場所で呼んでやればいいと思いますが・・・

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = "Stop" Then
Button1.Text = "Start"
Timer1.Enabled = False
Else
Button1.Text = "Stop"
InitializeTimer()
End If
End Sub
_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
こうめい
常連さん
会議室デビュー日: 2004/08/31
投稿数: 30
投稿日時: 2004-10-07 18:28
ありがとう御座いました。
正常に動作しました。原因は、InitializeTimer()が組み込まれていませんでした。HELPの例題をそのままコピーしてきて実行していましたので、例題に間違いがないと思っていましたが、その先入観が怪我のもとでした。大変ありがとう御座いました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-07 19:08
引用:

こうめいさんの書き込み (2004-10-07 18:28) より:

原因は、InitializeTimer()が組み込まれていませんでした。HELPの例題をそのままコピーしてきて実行していましたので、例題に間違いがないと思っていましたが、その先入観が怪我のもとでした。


 どこの例題を参考にしましたか?MSDNにある例は、どれもInitializeTimer()という関数は定義されていませんでした。

 あと、「このプロパティ、メソッドは何をする物なのだろうか」ということを考える癖を付けましょう。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)