• ベストアンサー

フォームを閉じないようにする

×ボタンを押したときに、ダイアログ(yes&no)を出して、noならばそのまま、yesならば終了、と言う形にしたいのですが、どうもうまくいきません。 どなたか教えてください。また、フォームのUnlordイベントは使えません。

質問者が選んだベストアンサー

  • ベストアンサー
  • asobe
  • ベストアンサー率76% (10/13)
回答No.4

2005でしたか・・・。 では、FormClosingを使ってみてください。 今後は質問時に開発環境を明記しておくと良いと思いますよ。 それが解決までの近道になるでしょう。

hikkih
質問者

お礼

こちらの説明不足で^^;スミマセン。 無事に出来ました。どうもありがとうございました。

その他の回答 (3)

  • asobe
  • ベストアンサー率76% (10/13)
回答No.3

回答No1の777さんの回答では、失礼ですが不十分ですので、補足させていただきます。 メッセージに"いいえ"で答えた場合はCancelをTrueにしてあげないと、結局閉じてしまいます。 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox("終了します。よろしいですか?", vbYesNo Or vbInformation) = vbYes Then End Else Cancel = True End If End Sub なお、UnloadModeをMSDNなどで調べると分かると思うのですが、Windowsから閉じられるのか、×ボタンを押したのか等、の判定を行うことができます。

hikkih
質問者

補足

バージョンが、Microsoft Visual Basic 2005 Express Editionですが、なぜかQueryUnloadもありません。

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.2

フォームのUnlordイベントではなくQueryUnloadイベントを使えばいいですよ。

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.1

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) aa = MsgBox("終了処理します。よろしいですか?", vbYesNo, "") If aa = vbYes Then End End Sub こんな感じで良いですか?

関連するQ&A