none
Formを×印で閉じるとき RRS feed

  • 質問

  • Formの×印押下クローズを捕まえようと下記の記述をしておりますが、×印クローズばかりでなく通常のクローズでもイベントが発生してしまいます。どうすればいいか教えてください。

        Private Sub Form3_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If e.CloseReason = System.Windows.Forms.CloseReason.UserClosing Then
                MsgBox("f3close")
                form1.Show()

            End If
        End Sub

    2014年4月5日 14:18

回答

  • むしろ「通常のクローズ」って何でしょうか。×ボタンは十分「通常のクローズ」だと思うのですが。Alt+F4とか。

    ×ボタンおよびAlt+F4以外で何らかの終了方法を用意しているのなら、フィールド(メンバ変数)に「プログラムから閉じた」フラグを用意しておいて、その終了処理時にそのフラグを立ててやれば、FormClosingでそのフラグを確認するだけで済みますね。

    • 回答の候補に設定 星 睦美 2014年4月7日 8:12
    • 回答としてマーク 星 睦美 2014年4月14日 8:04
    2014年4月5日 15:06
  • Formの×印押下クローズを捕まえるのであれば、以下が参考になると思います。以下は、イベントの発生元で判断しています。これで目的が達せられるかわかりませんが。

    How to know user has clicked “X” or the “Close” button?
    http://stackoverflow.com/questions/2683679/how-to-know-user-has-clicked-x-or-the-close-button


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答の候補に設定 星 睦美 2014年4月7日 8:12
    • 回答としてマーク 星 睦美 2014年4月14日 8:04
    2014年4月6日 5:36
    モデレータ

すべての返信

  • むしろ「通常のクローズ」って何でしょうか。×ボタンは十分「通常のクローズ」だと思うのですが。Alt+F4とか。

    ×ボタンおよびAlt+F4以外で何らかの終了方法を用意しているのなら、フィールド(メンバ変数)に「プログラムから閉じた」フラグを用意しておいて、その終了処理時にそのフラグを立ててやれば、FormClosingでそのフラグを確認するだけで済みますね。

    • 回答の候補に設定 星 睦美 2014年4月7日 8:12
    • 回答としてマーク 星 睦美 2014年4月14日 8:04
    2014年4月5日 15:06
  • Formの×印押下クローズを捕まえるのであれば、以下が参考になると思います。以下は、イベントの発生元で判断しています。これで目的が達せられるかわかりませんが。

    How to know user has clicked “X” or the “Close” button?
    http://stackoverflow.com/questions/2683679/how-to-know-user-has-clicked-x-or-the-close-button


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答の候補に設定 星 睦美 2014年4月7日 8:12
    • 回答としてマーク 星 睦美 2014年4月14日 8:04
    2014年4月6日 5:36
    モデレータ
  • gosekiten さん、こんにちは。
    フォーラム オペレーターの星 睦美です。

    gosekiten さんの質問にHongliang さんとtrapemiya さんからの返信があります。
    参考になるアドバイスではないかと思いますので、私のほうで[回答の候補に設定] していますが
    もし回答の内容に引き続き質問したい点がありましたら、遠慮なく返信できます。
    --

    今回は私のほうで[回答としてマーク] させていただきました。
    今後ともフォーラムで役立つ回答がありましたら、回答者の励みになりますので投稿者から[回答としてマーク] いただければ幸いです。


    フォーラム オペレーター 星 睦美 - MSDN Community Support


    • 編集済み 星 睦美 2014年4月14日 8:07 回答マーク
    2014年4月10日 5:55