Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Excel生成時にProgressBarを使って進捗状態を把握したい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30460#CommentId83807
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
kiku
 (社会人)
投稿日時
2020/3/12 09:29:20
現在の変換処理は、ボタンの中で実行してると仮定して回答します。
ボタンの中でプログレスバーの状態を変化させていると思うのですが、
この場合、プログレスバーが表示が更新されるのは、
ボタンの処理がすべて終了した後になります。
なので、いきなり100%になります。
そもそも、ボタンの中で時間のかかる処理を行うべきではありません。
このようなことをした場合、ボタンの処理が終了しないと、
例えば、アプリ終了ボタンを押下しても、フリーズのような状態になり、
実行されません。
どのような構造が良いかということですが、
時間のかかる処理は、UIスレッドとは別のスレッドで実行する方が良いです。
バックグラウンドワーカーを使う例ですが、その方法のサンプルは下記になります。
いろいろとぐぐってみると良いです。
http://hensa40.cutegirl.jp/archives/2971
上記の例ですと、
BackgroundWorker1_DoWorkの中に
時間のかかる処理を記述すれば
プログレスバーが表示できるようになります。
まずは、上記のサンプルをそのまま記述し、
動作を確認してみてください。