複数フォームを1ボタンクリックで終了させる方法
VB6.0
WindowsXP
(症状)
複数フォームを1クリックで終了できずに困っています。
理由は他のフォームに移ったときにボタンの位置やテキストの内容を残しておきたい為にunloadさせずに、
Me.Hideだけでフォームを移動しているためだと思います。
終了のときは、下記のコードを用いて、終了させています。
標準モジュールに
Public Sub sAllEnd()
Dim myObject As Object
For Each myObject In Forms
Unload myObject
Set myObject = Nothing
Next
End Sub
をおいて、
各フォームには
Private Sub Form_Unload(Cancel As Integer)
Dim myResult As Integer
myResult = MsgBox("終了します。" & vbCrLf & "よろしいですか?", vbOKCancel + vbQuestion, "終了確認")
If myResult = vbCancel Then
Cancel = True
End If
Call sAllEnd
End Sub
終了メッセージのOKボタンを開いたフォームの枚数分だけクリックしないと終了できない状態です。
これを1クリックで終了できるようにするためにはどうしたら良いでしょうか?
よろしくお願いします。
お礼
ありがとうございます。 ご指摘の通り、サブクラス化でおかしくなってました。