- PR -

フォームの【×】(閉じる)ボタンをクリックされたかを取得する方法

1
投稿者投稿内容
toshi
会議室デビュー日: 2005/05/13
投稿数: 12
投稿日時: 2005-06-29 20:21
こんばんは、いつもお世話になっております。
VB.netなどで、Windowsフォームアプリケーションを開発する際に、右上に×(閉じる)があると思います。

×(閉じる)ボタンが押されたときに、アプリケーションを終了しますか?と確認のメッセージを表示させたいのですが、ボタンのクリックイベントのように、×(閉じる)ボタンにもそのようなイベントはあるのでしょうか?

開発言語は、VS2003のVB.netです。よろしくお願いします。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-06-29 20:29
普通、FormのClosingイベントで処理します。
キャンセルは、e.Cancel=Trueでできます。
toshi
会議室デビュー日: 2005/05/13
投稿数: 12
投稿日時: 2005-06-29 20:48
catsさん回答ありがとうございます。
さきほど、FormのClosingイベントに、終了確認イベントを記述したら、me.closeを記述している箇所全てがClosingイベントにいってしまい、正常な処理後の終了のときも、確認メッセージがでるようになってしまいました。
できれば、×(閉じる)のみクリックされたことを取得したいのですが、方法はないでしょうか?

よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-06-29 21:47
 Senderって、なんのためにあるかご存じ?
_________________
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-06-30 09:27
引用:

さきほど、FormのClosingイベントに、終了確認イベントを記述したら、me.closeを記述している箇所全てがClosingイベントにいってしまい、正常な処理後の終了のときも、確認メッセージがでるようになってしまいました。



me.CloseでClosingが呼び出されたことが判るようにすればいいのでは?
たとえば正常終了時フラグを用意しておくとか。
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-07-01 09:26
そもそも、[Alt] + [F4] も判別しないとダメなんでしょうか?
そうであれば、キーを判定するしかありません。
また、コンテキスト メニューからの閉じるも区別するのでしょうか?

コード側からの判定であっても、フラグで判断できますが、
こんなちょっとお勧めできない方法もあります。

  フォームが閉じられる原因を取得する



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
toshi
会議室デビュー日: 2005/05/13
投稿数: 12
投稿日時: 2005-07-01 14:24
Jittaさん、Jubeiさん、じゃんぬねっとさん回答ありがとうございます。
jittaさん>
Senderの意味はいままで理解していなかったです。調べてみたら、たしかにSendaerの情報を確認することで実現できそうでしたが、どのオブジェクトが対象になるかをしらべきれず断念しました^^;
judeiさん>
フラグで行えば楽にできるのですが、フラグを追加すると関係する箇所全てにその操作を追加する必要があるので、ソースが無駄に増える+わかりづらいと思うのでどうしてもできないときの最終手段しか使いたくないんです^^;アドバイスありがとうございます。
じゃんぬねっとさん>
たしかに考えてみたらAlt+F4でもけせてしまうので、そのときも取得したいです。
紹介されたHPの方法でうまくいきそうです。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)