プロが教えるわが家の防犯対策術!

開始ボタンを押すと、
”保存しています。とめたい場合はキャンセルしてください”
と言ったようなダイアログにキャンセルボタンがついたダイアログを
表示し(表示中に処理は行われていく)、処理をキャンセルさせたいのですが、
Showで表示させると、キャンセルボタンが反応せず、
ShowModalを使用すると表示と同時に処理が止まってしまい、
ボタンを押さない限り処理が進まずにいます。
何かよい方法はないでしょうか?
よろしくおねがいします

A 回答 (3件)

>そのダイアログが処理中にアクティブにならないので、


>ボタンが押せないのです…
アクティブにならないのではなく、処理の中で
while等のループに入っていませんか?
そうなるとメインループを通らなくなるのでイベント(ボタンを押したこと)を
受け取れなくなります。

その手の質問は過去に何度かでているので検索してみてください。

質問:「キャンセル」ボタン付きの処理中ダイアログ
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1378154

質問:ループからの抜け出し方
http://oshiete1.goo.ne.jp/kotaeru.php3?q=362155

質問:ボタンが押された時にループから抜けるには
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1921945
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
過去ログもみたのですが、どれもスレッドを使うようなものばかりで、
他の方法はないのかなと思ったのですが、
やはり、これしかないのでしょうか。

お礼日時:2006/02/24 10:31

スレッドを分けて、中止をメッセージで渡すようにすれば……


実装方法は聞かないでくれ(汗
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
やはり、スレッド増やすしかないのでしょうか。
もっとシンプルにつくれないかなと考えていたのですが…

お礼日時:2006/02/24 10:29

モードレス表示する方法が正解かと。


Showでよいと思います。

ShowModalすると、
そのダイアログを閉じるまで
ShowModal()は制御を返しません。

キャンセルボタンが反応しない件は
ソースを見てみないと何とも。。。
キャンセルボタン押下時のハンドラを書いて
そこで閉じるような処理は入っているのでしょうか。

この回答への補足

ありがとうございます。
ボタンが反応しないと言うのは、
そのダイアログが処理中にアクティブにならないので、
ボタンが押せないのです…
保存処理後、試しに閉じていたダイアログを表示しっぱなしにしておくと、
処理が終わった後ではボタンを押すことができます。

補足日時:2006/02/09 11:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!