• 締切済み

Xボタンの認識

初心者です。 フォームの右上にあるXボタンが押された時に、 固有の処理(メッセージを出す)を行いたいのですが、Xボタンであることを認識する方法が分かりません。 ご教授をお願いいたします。 ※Me.Close()を、ボタンのClickイベント、テキストボックスのKeyDownイベントから行っています。 その時の処理と、Xボタンの時の処理を分けたいです。 ボタンの認識では、ActiveControlを使うようなことは分かったのですが。。

みんなの回答

回答No.2

VB6だと QueryClose イベントはどうでしょう? closemode 引数により、QueryClose イベントが発生した原因を示します。

kumanosuke_001
質問者

お礼

回答いただきまして、ありがとうございます。 言語をお伝えしていなくてすみません。。 VB.NETです。 Closingイベントでclosemode 引数に変わるものと思い、引数のsender、eを調べてみたのですが、 分かりませんでした><; VB6の開発の時は、教えていただいた方法を使用してみたいと思います。 本当に、ありがとうございました。

回答No.1

ボタンのClickイベント、 テキストボックスのKeyDowイベント の時のみFlgをTrueにし、 FlgがFalseならばXボタンを押されたと判断したら如何でしょう。

kumanosuke_001
質問者

お礼

回答いただきまして、ありがとうございます。 Flgは最終手段として考えていました。 ですが、他の方法もあるのでは?と思い、 質問させていただきました。 senderが情報をもっている気がするのですが、 調べ方が悪いのか、senderの情報がうまく収集できませんでした。。 Flgは最終手段として使用しようと思います。 ありがとうございました。

kumanosuke_001
質問者

補足

こんな方法を見つけました。 Closingイベントの中で↓を書きます。 Dim hStack As New System.Diagnostics.StackTrace(True) If hStack.GetFrame(14).GetMethod().Name().Equals("WmSysCommand") Then MessageBox.Show("×ボタンから呼ばれました。") End If 14番目のメソッドが呼ばれた場合、×ボタンのようです。 Alt + F4 キー等では対応していないようです。 回答していただいた皆様、ありがとうございました。

関連するQ&A