|
分類:[VB.NET (Windows)]
環境[VS2005]
お世話になっております。 VB.netでWindowsアプリの画面を作成しています。 メインとなる画面で時間がかかる処理をしている間 処理中画面を表示しようとしています。
ボタンクリック(処理開始) ↓ 処理中画面表示(メイン画面では時間がかかる処理を処理中) ↓ 処理中画面を消す(処理終了)
という流れです。
処理中画面ではプログレスバーをタイマーで適当に動かします。 (処理が終了とともに100%にするなどはしません)
下記コードで試したのですが 処理開始で処理中画面を表示し、 処理終了で処理中画面を削除はできたのですが、 処理中画面のプログレスバーが動作してくれません。
--------------------------------------------------- メイン画面での処理 Buttonのclickイベント(
'処理中画面表示 dim subForm as new FormSub subForm.Show()
'時間がかかる処理(仮にスリープ) System.Threading.Thread.Sleep(5000)
'処理中画面消す subForm.Close() )
FormSubでの処理 FormのLoadイベント(
ProgressBar.Minimum = 0 ProgressBar.Maximum = 100 Timer.Enabled = true ) TimerのTickイベント(
'プログレスバーを適当に動かす gValue += 1 if gValue = ProgressBar.Maximum then gValue = 0 end if Me.ProgressBar.Value = gValue ) ----------------------------------------------------
時間のかかる処理をスリープから メッセージボックスで"テスト"と表示する処理に変えたら、 処理中画面のプログレスバーが動きました。
----------------------------------------------------- メイン画面での処理 Buttonのclickイベント(
'処理中画面表示 dim subForm as new FormSub subForm.Show()
'時間がかかる処理 MsgBox("テスト",MsgBoxStyle.OkOnly,"テスト")
'処理中画面消す subForm.Close() ) ------------------------------------------------------
何かお分かりになられましたらご教授ください。 お願いいたします。
|