より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Form.Enabled=falseの意外な効用

WinFormsのアプリケーションを開発中に

あっ、これ、処理中に他の操作されたらダメじゃん

こういうことって網羅的なテストでは盲点になりがちですよね。

で、ツールだからざっくり一括でコントロール全体をDisabledにしたいということで、親となるFormのEnabledをfalseにしてみました。

docs.microsoft.com

WinFormsでは親のコントロールのEnabledがfalseになると子のコントロールのEnabledがtrueでもDisabledとなります。

なので、FormのEnabledをfalseにしてしまえばコントロール全体をDisabledすることが可能です。

それだけではなく、Formの右上の×ボタンもクリックしても閉じなくなります。

さらに、Alt+F4も無効です。

これは良くできているなと思いましたね。

処理中にアプリケーションを閉じられたらまずい時にはこのプロパティを変えるだけで問題が解消してしまうのです。