C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 125 を表示中)
■74251 / )  スタートアップ時にフォームが指定された位置に表示されない
□投稿者/ pod (25回)-(2014/12/11(Thu) 10:29:44)

分類:[C#] 

2014/12/11(Thu) 10:31:38 編集(投稿者)
2014/12/11(Thu) 10:31:34 編集(投稿者)

C# 2013 でアプリケーション終了時にフォームの位置や状態などをXMLに保存し、
次回起動時に復元するようにしました。

フォームには FormStartPosition.Manual を設定し、XMLに書かれた座標に従って
Left と Top を指定する一般的な方法をとり基本的には正しく動作しているのですが、
スタートアップに登録してWindows起動時に実行するようにすると何回かに一回だけ
指定した位置ではなく初期位置に表示されてしまうことがあります。

XMLの項目は正しく読み込まれており、位置以外は正しく動作していてエラーが出ている様子もありません。
問題発生時のXMLを使ってもう一度実行し直すと正しい位置に表示されます。

フォームは複数あり、メインとなる非表示フォームのコンストラクタでXMLを読み込み、
子フォームをインスタンス化した後でLeftとTopを設定しています。

再現性が低く、1割以下の確率でしか発生しないので調査が難しく困っています。
同様の症状の解決策や、問題の原因を特定する方法等ありましたら教えて下さい。
よろしくお願いします。

使用しているOSは Windows 7(64bit) です。
返信 編集キー/


管理者用

- Child Tree -