掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
timerでラベルの数字をカウントしたいんですが・・・ (ID:145476)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
アクアと申します。 既に 特攻体長まるるう さんや 通るぜ さんがアドバイスされてますが、お手伝いさせてください。 通るぜさんのアドバイスはIntervalプロパティの設定は幾つなのかという事です。 1秒ごとにTickイベントを発生させたい場合は1000を値に入れておきましょう。(たぶんこれは大丈夫の様に思います。) たぶん今回参考になるのは 特攻体長まるるう さんのアドバイスではないでしょうか? While文を用いておられますが、それを用いてしまうと一回のTickイベントの中で i += 1 CountLabel.Text = i を目に見えないほどの速さで40回ほどループ処理されて表示されてしまいます。 今回のご質問の内容を推察すると、 i < 40 の条件を満たすまで i += 1 の処理を繰り返して1秒毎に表示したいのでしょうが、その度にこの処理を抜けなければなりません。 という事は、この時に必要なのはFor〜NextやWhileの様な繰り返し処理ではなくて、if〜End Ifなどの分岐処理が望ましいといえます。 以上を考慮すると、以下の様なコードになると思います。 Private i As Integer = 0 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load ' Timer1のインターバルを1000ミリ秒(1秒)に設定 Me.Timer1.Interval = 1000 End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Timer1.Tick If i = 40 Then ' Timer1の実行を現在の状態とは反対に設定。 Timer1.Enabled() = Not Timer1.Enabled() i = 0 Else i += 1 CountLabel.Text = i.ToString() End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click ' Timer1の実行を現在の状態とは反対に設定。 Timer1.Enabled() = Not Timer1.Enabled() End Sub
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.