- PR -

サブ画面でのメッセージボックスの処理

投稿者投稿内容
クリス
会議室デビュー日: 2004/07/13
投稿数: 11
投稿日時: 2004-07-21 15:21
認識に問題があることについて何も答えないまま回答してしまいました。
なちゃ様、説明ありがとうございます。

それと、なちゃ様の意見に追加してもうひとつ変だなと思った点があるのですが

>Me.Dispose()
>Application.Exit()

この部分ですが
自身をDisposeしたあとにApplication.Exit()を書いても
アプリケーションの終了はしないと思います。


#違う意味の文章になっていたので修正

[ メッセージ編集済み 編集者: クリス 編集日時 2004-07-21 15:31 ]
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2004-07-22 10:05
===>なちゃ様&クリス様

お世話さまです。
マルチレスご容赦下さい。m()m

まず、クリス様からご教示頂いた方法で実装してテストしてみましたが、
やはりfrmBが閉じてしまいダメでした。

DialogResultへの代入も行ってませんが、ダメです。

なにか他の箇所でこの処理に影響を与えるコーディングでも
してるのかと思うようになってきました。^^;

応急処置的にfrmBをモードレスで表示するように切り替えて
凌いでおります。

これにより、frmBで”いいえ”を押下してもfrmBは閉じなくなりました。

元々frmBの戻り値をfrmAで使うわけでもないので、モードレス
でもいいような気がしてきました。

色々とお手数をおかけして申し訳ありませんでした。

ご教示多謝です!
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2004-10-08 09:57
お世話さまです。

今更なんですが、フィードバック自己レスです。

frmAからfrmBをモーダルで表示し、frmB上で終了確認の
ダイアログボックスを表示して、そこでキャンセルが押下
された場合にダイアログボックスだけを閉じてfrmBを
表示したままにできました。

frmAにて
frmB.ShowDialog()

frmBにて
Private Sub cmdEnd_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles cmdEnd.Click
  Select Case MessageBox.Show("システムを終了しますか?", _
        "終了確認", MessageBoxButtons.YesNo, _
        MessageBoxIcon.Question)
    Case DialogResult.Yes
      Me.Dispose()
    Case DialogResult.No
      Exit Sub
  End Select
End Sub

これに加えて

@frmBのDialogResultの値をNoneに設定
AfrmBのCancelButtonをなしに設定

することによって意図する動作が実現できました。

@だけではダメでCancelButtonに設定していたcmdEndボタンを
外すことで上手く行きました。

とりあえずご報告まで。

スキルアップ/キャリアアップ(JOB@IT)