掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
配列変数の値を順にLabelに表示していくには? (ID:145418)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> TimerコントロールのなかにFor..Nextを入れると 入れません。Tick イベントそのものがループ待機の処理と思ってください。 突然登場した stFilePathes というのが、String 配列の事であれば、 1回目の Tick イベントでは、stFilePathes(0) を表示 2回目の Tick イベントでは、stFilePathes(1) を表示 3回目の Tick イベントでは、stFilePathes(2) を表示 : のように処理させれば OK です。イメージとしてはこんな感じ。 Private pathIndex As Integer = 0 Private Sub Timer1_Tick(… Dim stFilePathe As String = stFilePathes(pathIndex) Label2.Text = stFilePathe & " をコピー(外部へインポート)" '次の番号にすすめる pathIndex += 1 '配列を全て出力したら、タイマーを止める If pathIndex > UBound(stFilePathes) Then pathIndex = 0 Timer1.Enabled = False End If End Sub > For..Nextは100ミリ秒待機を入れても処理してくれるのですが ループさせる / Sleep させるという発想から離れてください。 画面を持つスレッドを Sleep させるべきではありません。 また、描画処理の多くは メソッドの実行が行われていない空き時間に 行われます。そのため、長いループ処理の最中などに Label 等を書き換えても、 その結果は、基本的にはメソッドの終了が終わるまで画面に反映されません。 DoEvents を行うことで、割り込んで処理させる事はできますが、 処理が複雑化しやすいので、これもできれば避けた方が良いでしょう。 そもそも、待機させるようなコードにしなければ、DoEvents を呼ぶ必要もないですし。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.