Compact FrameworkのMicrosoft.WindowsCE.SystemSettings.ScreenOrientation

謎のExceptionが出ます。

///


/// クライアント領域の大きさが変更された際のハンドラ
///

///
protected override void OnResize(EventArgs e)
{
base.OnResize(e);

if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle0)
{
}
else
{
SystemSettings.ScreenOrientation = ScreenOrientation.Angle0; //ここ
}
}

何せ、ほんとに「Exception」という名前なんだもん、全く持って詳細不明……。
そのうえ、

  • 元々縦の時にも正常に動く。
  • 起動直後にOnResizeが呼ばれたときには正常に動く
  • 実行中にOnResizeが呼ばれたとき(ようは方向を変えるボタンを押されたとき)にはException
  • 起動前の状態は縦でも横でも起こる

……判らん。Exceptionをみても詳細乗ってないし……。とほほ。
回転している真っ最中にもう一度設定するとExceptionが起きるのかなぁ?
だとしたら、回転させない(もしくは回転をキャンセルする)方法ってどうしたらいいんだろう?