ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4150100 別フォームから戻ったときのイベント
質問者:kenntoto VB.NETの質問です。
フォームA(以下A)から、フォームB(以下B)を
モーダル表示で呼びだした後Bを閉じて、Aに戻ったときに、
フラグを立てたいと思っています。

このタイミングのイベントは
どのようにして取ればよいのでしょうか?

ちなにみAのActivatedイベントで試してみたのですが、
結果NGでした。
Aの上にBが重なっている状態で
Bの部分的に見える箇所を一瞬クリックしても
Activatedイベントが実行されてしまい、
フラグが立ってしまします。

もちろんモーダル表示なので、Aが前面にくることは
ないのですが、なぜかActivatedイベントが実行されてしまいます。

きちんとBを閉じて、Aに戻った時に限り
フラグを立てたいと思っています。

Bを閉じた時にB側でフラグを立てる方法もありますが、
仕様の都合上、A側で処理をさせたいのです。

以上、わかりづらいかもしれませんが
ご存じの方がいましたらご教授ください。
困り度:
  • 困っています
質問投稿日時:
08/07/04 09:29
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

ANo.3 既に出ている回答以外ですと、
BのClosedイベントに、A側で何か処理をAddHandlerすればBが閉じられたときにそれが実行されます。
この方法ですと、モーダル・モードレス関係なくBが閉じられた時に処理が実行できます。
回答者:NYOI
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
08/07/04 11:01
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 既に回答が掛かれてますが、敢えて補足すると…
Bをモーダルで表示している間、Aの処理は概念的には ShowDialogのところで
「止まっている」と考えて差し支えないと思います。
なので、ShowDialogの直後でフラグを立てたりするだけで構わないのです。
回答者:K-Sogacchi
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:
08/07/04 10:06
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 ShowDialogでモーダル表示していると思います
この戻り値を使えばいいのではないですか?

dim dlgRet as DialogResult
dim dlg as new myModalForm()
dim bflag as boolean = false

dlgRet = dlg.ShowDialog();
if dlgRet = DialogResult.OK then
  bflag = True
else
  bFlag = false
end if
といった具合ですが ・・・
回答者:redfox63
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
08/07/04 09:42
この回答への補足回答ありがとうございました。
そもそもdlgRet = dlg.ShowDialog() の書き方が間違っていて、
本来は画面を表示している間ストップするはずですが、
ストップされずに、これ以降の処理に進んでいたのが
うまくいかなかった原因でした。
この方法で試してみたいと思います!
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示