今検索処理をしていて、その検索中の間はプログレスバーを表示
してどのぐらいの時間がかかるのかという事をしているのですが
「検索中」というLabelを貼っても処理の問題上なのかもしれませ
んが表示されないのです。確実に文字列を表示する事ができないも
のでしょうか?
Labelを更新したあとでDoEvents
個人的には[Label].Refresh…多分。
画面の表示はただ文字列を設定すればいいだけでなく、描画処理
が走らないと表示更新されません。普段は自動で行われるために
意識しなくてもいいのですが、外部処理の応答待ちだったり、
Sleep などでプロセスが停止状態だったりするとプログラム側で
明示的に表示更新処理が走るようなコードを書く必要があります。
>確実に文字列を表示する事ができないものでしょうか?
開発環境もどんなコードを書いてるかも示さないくせに要求する
ことだけは確実に…ですか。
Refresh だとか Update などのメソッドが有効な場合もあれば、
DoEvents でOSに制御を返すのが有効な場合もあります。
…プログラムに合わせて最適な方法を選択して下さい。
…ああ、あと、意外なところでプログレスバーとラベルを
重ねててラベルの文字が見えないとか言い出す人も見た事
ある。…上の質問には詳細が書かれていないので判断できない
ですが。ボクなんかは、デザイン画面で見えてなきゃ見えない
のが当然だと思っちゃうけど…ZOrder とかいうキーワードで
階層構造について調べれば実現できるかどうかも含めて分かる
事でしょう。
DoEventsを使用しました。見事に解決!!
自分の知識のなさに悲しくもなりましたが
皆様のおかげでまたひとつ知識を増やすことが
できました。ありがとうございました。
>重ねててラベルの文字が見えないとか言い出す人も見た事
>ある。…上の質問には・・・・・・
VB.NETならControls.Addでプログレスバーを親とすれば可能ではないでしょうか?
ツイート | ![]() |