- 締切済み
Xボタンの認識
初心者です。 フォームの右上にあるXボタンが押された時に、 固有の処理(メッセージを出す)を行いたいのですが、Xボタンであることを認識する方法が分かりません。 ご教授をお願いいたします。 ※Me.Close()を、ボタンのClickイベント、テキストボックスのKeyDownイベントから行っています。 その時の処理と、Xボタンの時の処理を分けたいです。 ボタンの認識では、ActiveControlを使うようなことは分かったのですが。。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Hayashi_Trek
- ベストアンサー率44% (366/818)
VB6だと QueryClose イベントはどうでしょう? closemode 引数により、QueryClose イベントが発生した原因を示します。
- chibita_papa
- ベストアンサー率60% (127/209)
ボタンのClickイベント、 テキストボックスのKeyDowイベント の時のみFlgをTrueにし、 FlgがFalseならばXボタンを押されたと判断したら如何でしょう。
お礼
回答いただきまして、ありがとうございます。 Flgは最終手段として考えていました。 ですが、他の方法もあるのでは?と思い、 質問させていただきました。 senderが情報をもっている気がするのですが、 調べ方が悪いのか、senderの情報がうまく収集できませんでした。。 Flgは最終手段として使用しようと思います。 ありがとうございました。
補足
こんな方法を見つけました。 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 キー等では対応していないようです。 回答していただいた皆様、ありがとうございました。
お礼
回答いただきまして、ありがとうございます。 言語をお伝えしていなくてすみません。。 VB.NETです。 Closingイベントでclosemode 引数に変わるものと思い、引数のsender、eを調べてみたのですが、 分かりませんでした><; VB6の開発の時は、教えていただいた方法を使用してみたいと思います。 本当に、ありがとうございました。