DOBON.NET DOBON.NETプログラミング掲示板過去ログ

処理が抜ける???

環境/言語:[WinXP]
分類:[.NET]

どうもはじめまして以後よろしくです。

今不思議な現象で悩んでいます。

フォームにラベルを配置し、ラベルのテキストに"aaa"を入れて、
データの検索なりをして、処理が終わったらラベルのテキストに""(空白)
を入れているのですが、(処理が終わったという知らせ)
実行してみると、一番初めのラベルのテキストが何も表示しないで、
データの検索を行ってしまっています。

なぜラベルに"aaa"と表示されないのでしょうか?
何か理由があるのでしょうか?不思議な現象です。
この現象がわかる方教えてください
■No5800に返信(はるなさんの記事)
> どうもはじめまして以後よろしくです。
>
> 今不思議な現象で悩んでいます。
>
> フォームにラベルを配置し、ラベルのテキストに"aaa"を入れて、
> データの検索なりをして、処理が終わったらラベルのテキストに""(空白)
> を入れているのですが、(処理が終わったという知らせ)
> 実行してみると、一番初めのラベルのテキストが何も表示しないで、
> データの検索を行ってしまっています。
>
> なぜラベルに"aaa"と表示されないのでしょうか?
> 何か理由があるのでしょうか?不思議な現象です。
> この現象がわかる方教えてください

そういうテストらしきことをするなら、Button::Click()イベントでやってください。
Form::Loadイベントなどでやると、画面が更新される前に処理が終わる場合があります。
また、状況に合わせてブレイクを使ってください。

# 情報が少なすぎて、何とも言えません。
■No5801に返信(java.lang.Nullpoさんの記事)
> そういうテストらしきことをするなら、Button::Click()イベントでやってください。

Button::Click()イベントで処理をしています

> Form::Loadイベントなどでやると、画面が更新される前に処理が終わる場合があります。
> また、状況に合わせてブレイクを使ってください。

デバッグモードで確かめながら処理をしていると、表示している画面がどうなっているかがわからないのですが、何かをすれば画面の動きを見ながらデバッグする方法ってあるのでしょうか?

一つ気になっていることがあるのですが、
一つのイベントの処理が終わらないと(例えばクリックイベントとか)
表示画面等が更新されないのでしょうか?
(ラベルや、テキストなどに文字が表示されない)
全ての処理が終わらなくても何らかの処理をすれば表示の更新ができるのでしょうか?
  • 題名: Re[3]: 処理が抜ける???
  • 著者: java.lang.Nullpo
  • 日時: 2004/08/26 11:15:01
  • ID: 5813
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2004/08/26(Thu) 11:19:17 編集(投稿者)

■No5809に返信(はるなさんの記事)
>>そういうテストらしきことをするなら、Button::Click()イベントでやってください。
> Button::Click()イベントで処理をしています

さようですか... すいません、すいません... m(_ _)m

>>Form::Loadイベントなどでやると、画面が更新される前に処理が終わる場合があります。
>>また、状況に合わせてブレイクを使ってください。
> デバッグモードで確かめながら処理をしていると、表示している画面がどうなっているかがわからないのですが、何かをすれば画面の動きを見ながらデバッグする方法ってあるのでしょうか?

はい、ウォッチ式を使えば、関数の戻り値やプロパティでさえも見ることができます。
「txtTokuiCode.Text」のように指定すれば、現在の「画面の動き」を見ることができるわけです。

■追記(ウォッチ式の使い方)

 以下は、知っているなら読まなくて良いです。
 いくつか使い方があるのですが、慣れないうちは、どこがでブレイクしておいて、
 見たい部分だけ選択します(たとえば、「txtTokuiCode.Text」をマウスで部分選択する)
 その後、その上で右クリック→[ウォッチ式の追加]です。


> 一つ気になっていることがあるのですが、
> 一つのイベントの処理が終わらないと(例えばクリックイベントとか)
> 表示画面等が更新されないのでしょうか?
> (ラベルや、テキストなどに文字が表示されない)
> 全ての処理が終わらなくても何らかの処理をすれば表示の更新ができるのでしょうか?

まあ、プロセスの状況にもよりますが、普通は、
  txtTokuiCode.Text = "1234"
とやれば、(画面が)即時更新されます。(普通はね)

ただ、描画を「意図的」に無効にしたり、プロセスが「Busy状態」の場合はこの限りではありません。
ちなみに、プロセスがBusy状態の際は、Refresh()メソッドなどで強制的に描画はできますが...

# ウォッチ式でまず追ってみてください。
# もしどうしても解決できないならば、ソースを貼ってください。
# でないと、情報が少なすぎて何とも答えられませんです...

DOBON.NET | プログラミング道 | プログラミング掲示板