- ベストアンサー
VBでの質問です
VBでの質問です とあるボタンを押すと5分から0分までカウントダウンするタイマーで0分0秒になったら「時間になりました」と表示するプログラムを作りたいのですが、どのようにしたらいいのでしょうか。 ちなみにメッセージボックスの作り方はわかります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>0秒になった後、ーでカウントされていきました。 >なぜでしょうか >それと >時間が0.0000000秒とコンマ以下のケタが長いので >3桁くらいにできるでしょうか 私の環境でも、0.00000秒表現になることもあります。 0秒後カウントされるのは、00:00:00ではないからです。 0.13434??のように端数が発生する場合あるようです。 ですから、 最初に、 >ときどき、上手くいきませんが、 と前置きしています。 繰り返し、トライしてみてください。 上手くいく場合もあるようです。 後は、自分で、改良してください。 改良点は、やっていませんが、多分、 端数が出ないように、すれば良いだけだと思います。
その他の回答 (2)
- gookinger
- ベストアンサー率23% (33/140)
Public Class Form1 Inherits System.Windows.Forms.Form Dim k As Integer Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load k = 10 End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick k = k - 1 If k = 0 Then MsgBox("時間になりました. ") Timer1.Enabled = False End If End Sub End Class 上記は、10秒のカウントダウンタイマの例です。 タイマインターバルを1000にしています。 後は、No.1の方のサンプルコードをご参考にして、 5分間のタイマを作成してみて下さい。 尚、開発環境は、VB.NETです。
お礼
ありがとうございますこれから改良します
- tom11
- ベストアンサー率53% (134/251)
ときどき、上手くいきませんが、 簡単に書くと、こんな感じになりますかね。 さらに、改良してください。 Public Class Form1 Dim n5 As Date Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click n5 = Now.AddMinutes(5) Timer1.Interval = 1000 Timer1.Start() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = n5.Subtract(Now).ToString If Label1.Text = "00:00:00" Then Timer1.Stop() MsgBox("時間になりました。") End If End Sub End Class
補足
すいません 0秒になった後、ーでカウントされていきました。 なぜでしょうか それと 時間が0.0000000秒とコンマ以下のケタが長いので3桁くらいにできるでしょうか
お礼
ありがとうございます。 NO2の方の回答と合わせてやったらうまいこと行きました