デバッガとLoadイベントで発生するWindows 7の64ビットバージョンとの間の相互作用にバグがあります。例外がトラップされ、Windowsで飲み込まれた場合、デバッガは未処理であることを検出する機会はありません。表示されるのは、[出力]ウィンドウの「最初のチャンス」通知だけです。 Loadイベントハンドラは即座に終了し、初期化コードの重要な部分をバイパスしなかったと仮定して、何も起こらなかったかのようにプログラムは実行を継続します。このバグは長年にわたって存在しており、Microsoftにはよく知られていますが、修正するのは難しいようです。
Project + Properties、Compileタブ、スクロールダウン、Advanced Compile Optionsボタンでこのバグを回避できます。ターゲットCPUの設定を「AnyCPU」に変更してください。それをトラップする別の方法は、Debug + Exceptionsで、CLR ExceptionsのThrownチェックボックスにチェックを入れます。さらに別の回避策は、OnLoad()またはLoadイベントの代わりに、初期化コードをコンストラクタに配置することです。ウィンドウの実際のサイズを知る必要があるときは、Loadのみが必要です。
このバグは、デバッグ時にのみ発生します。それはあなたのユーザーのマシンでは起こりません。
更新:this postでこの事故を大幅に拡大しました。
私はちょうど投げられたボックスをチェックしました、そして、それは今エラーで壊れますが、私の他のプロジェクトで投げられていませんが、まだエラーで壊れています。とにかくこれをチェックしておくことに何らかの害はありますか?私が今日追加したUnitTestとは関係があると思います。最初に私が見たのは、それがそうするだろうと思っていませんでした。これをもう一度有効にするより良い方法はありますか? – baileyswalk