Form004.2. フォームの終了を阻止する


テキストエディタを作るときみたいに、保存されtない状態でフォームが間違えられて×ボタンを押されてしまい、そのまま終了してしまうとちょっとまずいですよね。

フォームの終了前に確認を入れるプログラムを作ってみましょう。

Form.FormClosingイベント

フォームが閉じられる前に呼び出されるイベント”FormClosing”イベントというものがあります。これを設定することでフォームの阻止をすることができます。

また、似たイベントにFormClosedというイベントがあります。こちらはフォームが閉じられたあとに呼び出されるイベントです。なので阻止するという今回の目的には合いません。

d25

 

フォームを選択し、F4ボタンでイベントウィンドウを表示し、上部のイナズママークを選択し、イベントのメニューにします。そこからFormClosingイベントを探し、それをダブルクリックしましょう。

そうするとこんなメソッドが作られます。

この中の阻止する命令を書きます。

阻止する命令を書こう

そしするのは非常に簡単です。このFormClosingイベントにはFormClosingEventArgs型のeというパラメータがありますよね。

このeにCancelというプロパティがあります。これをtrueにするだけで、フォームが閉じられるのを阻止することができるのです。

しかし、選択肢もなしに阻止だけしてしまうとフォームを閉じる手段がなくなってしまいます。

もしこのコードを試しに実行してしまった場合は、デバッグしてる場合はデバッグの終了を、違うならタスクマネージャーから強制終了しましょう。

選択肢を表示する

このままではいけないので選択肢を終了しましょう。前項で紹介したMessageBoxを利用します。

これは単純に選択肢を表示し、キャンセルボタンが押されたら閉じられるのを阻止するというプログラムです。

2016-07-24

実にシンプルですね。

まとめ

閉じられるのを阻止するにはForm.FormClosingイベントを設定し、e.Cancelをtrueにする

 

Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">