プログレスバーで文字列を表示するには?

解決


新一  2005-06-23 20:10:04  No: 122932

今検索処理をしていて、その検索中の間はプログレスバーを表示
してどのぐらいの時間がかかるのかという事をしているのですが
「検索中」というLabelを貼っても処理の問題上なのかもしれませ
んが表示されないのです。確実に文字列を表示する事ができないも
のでしょうか?


むっきー  2005-06-23 20:40:55  No: 122933

Labelを更新したあとでDoEvents


ガッ  2005-06-23 20:42:13  No: 122934

個人的には[Label].Refresh…多分。


特攻隊長まるるう  2005-06-23 20:49:23  No: 122935

画面の表示はただ文字列を設定すればいいだけでなく、描画処理
が走らないと表示更新されません。普段は自動で行われるために
意識しなくてもいいのですが、外部処理の応答待ちだったり、
Sleep などでプロセスが停止状態だったりするとプログラム側で
明示的に表示更新処理が走るようなコードを書く必要があります。

>確実に文字列を表示する事ができないものでしょうか?
開発環境もどんなコードを書いてるかも示さないくせに要求する
ことだけは確実に…ですか。
Refresh だとか Update などのメソッドが有効な場合もあれば、
DoEvents でOSに制御を返すのが有効な場合もあります。
…プログラムに合わせて最適な方法を選択して下さい。


特攻隊長まるるう  2005-06-23 21:04:18  No: 122936

…ああ、あと、意外なところでプログレスバーとラベルを
重ねててラベルの文字が見えないとか言い出す人も見た事
ある。…上の質問には詳細が書かれていないので判断できない
ですが。ボクなんかは、デザイン画面で見えてなきゃ見えない
のが当然だと思っちゃうけど…ZOrder とかいうキーワードで
階層構造について調べれば実現できるかどうかも含めて分かる
事でしょう。


新一  2005-06-23 21:16:17  No: 122937

DoEventsを使用しました。見事に解決!!
自分の知識のなさに悲しくもなりましたが
皆様のおかげでまたひとつ知識を増やすことが
できました。ありがとうございました。


マグ  2005-06-23 22:10:10  No: 122938

>重ねててラベルの文字が見えないとか言い出す人も見た事
>ある。…上の質問には・・・・・・

VB.NETならControls.Addでプログレスバーを親とすれば可能ではないでしょうか?


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加