このような質問が後を絶ちません...
Load イベントで、表示するかどうかを判断して、表示する条件でない場合は Form を閉じたい。(表示しない)
これは考え方からして誤りだと思います。表示することが決まっていないのであれば Load しなければ良いですよね? Show メソッドを使わなければ良いですよね? 表示できる条件が整ったら Show メソッドを呼び出せばいいですよね? Load したのに即 Close がどれだけ無意味でコストが高いのかは火を見るより明らかですよね。
Load されることを前提に考えるから、おかしくなるのだと思います。Load イベントは初めて表示される直前に発生するイベントです。表示されるかどうか決まっていないのですから、Load イベントではなく判断するためのメソッドを用意して、そのメソッド内で判断すべきです。
いや、アプリケーションの初期化も含まれるんですよ。
ならば、その Form に依存するものではないので、尚更におかしいでしょう。エントリ ポイントで初期化用のメソッドを呼び出して、初期化すれば良いのではないでしょうか? (エントリ ポイントをご存知ないというパターンもありますが)
何も考えずに「これで実現できるからいいや」というノリで組むと、このような事態になります。できれば、コード レベルの仕様くらいは '考えてから' 組みましょう。コード レベルの仕様はプログラマが決めるものです。これができないと「プログラマ」ではなく「コーダー」になってしまうでしょう (社会人 1 年生くらいの新人のうちはできないかもしれませんが)。
ここで言う「コーダー」は、構文を理解し '仕様の実現はできる' 方々を指します。決して打っているだけという「パンチャー」の意味ではありません。