Windowsクラシックモードと通常モードの違い(win7)

mtjです。

WindowsFormで実装していると謎のエラーが発生する時があります。
表題の通り、クラシックと通常モードでWindowsFormの動作が変わるものもその一つです。

自分たちでテストしているときはクラシックにしないので何も発生せず、お客さんのところで運用している
間にクラシックで問題発生とのことが起こる場合があります。

原因はクラシックではFormが表示されていない(コンストラクタ内)にもかかわらず
一部イベントが発生するためです。
Formのコンストラクタ内部で初期化したとしてもデザイナーでnullが入る可能性もあるためなかなか把握できません。

一番簡単な方法で先で全てnullチェックをするのが確実な方法だと思われます。
またはCreatedプロパティがあるのでそれがtrueなら処理を行うが一番確実だと思われます。

上記の問題はログを確認してもなぜNULLが入っているのかわかりにくい点が厳しいです。
スタックトレースを見ればInitializeComponent()から発生しているのですぐわかりますが。

コメントを残す