フォームのサイズと位置を、終了時に設定ファイルに書き出し、再度実行された際に復元するという処理を書いているのだが、フォームのサイズがじわじわと縦に伸びていくという問題が発生していることに気づいた。
サイズは、毎回20ずつ伸びていき、しまいにはウィンドウのデスクトップから下端が見えなくなる。
フォームには、メニューバー、ステータスバー(高さ22)、ツールバー(サイズ32の正方形画像のボタンが張り付いている)が配置されている。サイズ設定の復元はフォームのNewコンストラクタ内で行っている。デバッグモードで追いかけたところ
- Newの中でサイズを変えても、Newを抜けるまではサイズは反映されない。
- Form_Loadイベントに到達したときには、すでにサイズは20伸びている
ということが確認できた。おそらく、メニューバーか何かの表示がNewの実行され...とか、そういう路線だと推測しているのだが。
やはりそうみたいだ。明確な原因はわからないが、サイズ復元処理をLoadイベントに移したら現象は出なくなった。時間がないのでこれ以上の調査はやめておく。