このような質問が後を絶ちません...
Load イベントで、表示するかどうかを判断して、表示する条件でない場合は Form を閉じたい。(表示しない)
待ってください、これは根本から間違っていると思います。表示することが決まっていないのであれば、Show メソッドを使わなければ良いですよね? 表示できる条件が整ったら Show メソッドを呼び出せばいいですよね?
Load されることを前提に考えるから、おかしくなるのだと思います。Load イベントは初めて表示される直前に発生するイベントです。表示されるかどうか決まっていないのですから、Load イベントではなく判断するためのメソッドを用意して、そのメソッド内で判断すべきです。
いや、アプリケーションの初期化も含まれるんですよ。
ならば、その Form に依存するものではないので、尚更におかしいでしょう。エントリ ポイントで検証メソッドを呼び出して、検証すれば良いじゃないですか? それとも、エントリ ポイントをご存知ないということでしょうか?
これも、Load されることを前提に考えるから、おかしくなるのです。前提が間違っていることに気付かないと、選択肢を狭めてしまいます。
今回は「2 例」を紹介したかったので、この形式になったのですが、実際のコミュニティでは、後者の質問は減少しています。後者は、エントリ ポイントの存在を気付かせれば、解決するからでしょう。
何も考えずに「これで実現できるからいいや」というノリで組むと、このような事態になります。できれば、コード レベルの仕様くらいは '考えてから' 組みましょう。
コード レベルの仕様 (構造とメソッドの実装場所など) はプログラマが決めるものです。これができないと「プログラマ」ではなく「コーダー」になってしまうでしょう。
ここで言う「コーダー」は、構文を理解し '仕様の実現はできる' 方々を指します。決して、打っているだけという「パンチャー」の意味合いはございません。