ToolStripProgressBarの怪


■プログレスバー表示の謎についての備忘録

プログレスバーとは?時間のかかる処理等で、 ユーザーへ処理の進捗を視覚化するものですので、 普段は隠しておきたいものですよね? これまで、あまり気にしてなかったのですが・・・ 今回のケースではデザイン時にプロパティウィンドウで 「Visible」プロパティを予め「False」に変更しておき、 処理の前に「True」とし、いざ表示としても 表示されて来ない状態に(処理自体は正常に実行されている) 構成は「StatusStrip」コントロール内に、ラベルが2つ (内ひとつは「Spring」プロパティを「True」に変更)と、問題のプログレスバーです。

終いには「Application.DoEvents()」などと入れる始末・・・それでも頑固に出てこない、 確かに対象の処理自体は重いのだが・・・

■色々と試してはみたものの・・・

最終的には、デザイン時にプロパティの設定はせず(VisibleはTrueのまま) フォームのロード時にコーディングで変更することを試すと・・・ なんとも簡単に解決されてしまった。いったい何なんだろうか? 予め非表示にしてあると、実体化されないのであろうか? ちなみに、ラベルでも同じことを試みてみたのだが、こちらは正常に表示された。 プログレスバーの場合、表示に必要なリソースが回ってこないのであろうか? しかし、プログラミング中にロジック以外の部分で時間を取られるのはストレスなことだ。。。

TOP ▲