VB6フォームを閉じたボタンを取得する

スポンサーリンク

VB6 では、手動でフラグのようなものを設けなければなりません。.NET Framework に習って実装すると以下のようになります。

サンプルコード

以下にサンプルコードを示します。

VB6.0 以前
'/* どこかの Module */
Option Explicit

' DialogResult 列挙体をこのように定義する
Public Enum EnumDialogResult
    None   = 0
    OK     = 1
    Cancel = 2
    Abort  = 3
    Retry  = 4
    Ignore = 5
    Yes    = 6
    No     = 7
End Enum
VB6.0 以前
'/* メイン フォーム側 */
Option Explicit

' cmdShowSub をクリックした時
Private Sub cmdShowSub_Click()
    ' FormSub の新しいインスタンスを生成する
    Dim cFormSub As FormSub
    Set cFormSub = New FormSub

    ' FormSub を表示する
    Call cFormSub.Show(vbModal)

    ' btnOK を選択して閉じた時 [OK] となることを確認する
    If cFormSub.DialogResult = EnumDialogResult.OK Then
        Call MsgBox("FormSub で [OK] ボタンが選択されました")
    End If

    ' 不要になった時点で参照を解放する (Terminate イベントを早めに起こす)
    Set cFormSub = Nothing
End Sub
VB6.0 以前
'/* サブ フォーム側 */
Option Explicit

' プロパティ 変数
Private mDialogResult As EnumDialogResult

' DialogResult - Get
Public Property Get DialogResult() As EnumDialogResult
    DialogResult = mDialogResult
End Property

' cmdOK をクリックした時
Private Sub cmdOK_Click()
    ' 手動で、このフォームの DialogResult プロパティに値を設定する
    mDialogResult = EnumDialogResult.OK

    ' このフォームを閉じる
    Call Unload(Me)
End Sub

関連するリファレンス

準備中です。

スポンサーリンク