掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォームの高さの変わるのを防ぐには (ID:85879)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
プログラム上でHeightを直接指定して、 XPリナスタイルでフォーム下部が切れたことは私も経験があります。 しかし、その場合は下部が少し切れただけで、 mammalさんのおっしゃってるような >ちょうどメニューの高さだけ短くなって、 という現象ではありませんでした。 私の上記の問題はプログラム上でHeightを直接指定したことにあるのですが、 WinXPのリナスタイルが直接原因ではなく、 WinXPのリナスタイルではタイトルバーの高さが『25』に標準設定されているのが原因で、 WinXPクラッシックスタイル及びWinXP以外のOS(Win2003含む)は『18』が 標準設定だったため、フォーム下部がこの差分切れていました。 つまり、WinXPクラッシックスタイル及びWinXP以外のOSでも タイトルバーの高さを『18』より大きくすれば上記現象が発生しましたし、 逆にWinXPのリナスタイルでも高さを『18』に設定すれば 正常に表示されました。(全OSでチェックしました) タイトルバーの見た目は少しおかしくなりましたがw Tamyさんのおっしゃっていらっしゃるのはこの現象ではないでしょうか。 この現象が起きることを忘れていた為とはいえ、 前回の私の発言はまずかったですね。失礼いたしました。 >Heightの値を固定で持ち、 ではなく、Form_Load時にタイトルバーの高さを取得して 必要なHeight値を計算し、明示的にセット、と書くべきでした。 私はこの方法で対処しました。 ちなみに、明示的にコード内で直接指定していない場合、 つまりデザイン時にフォームプロパティで変更しただけの場合は タイトルバーの高さを手動で変えようとも、 実行時に正常に表示されますのでご心配なく。 以前私の環境でメニューとステータスバーのあるフォームで、 デザイン時に一度もフォームウィンドウを表示しないままで 実行すると(デバッガ上で)ステータスバー分フォーム下部が短くなって 表示されていたことがあるので、それと似たような状況なのかな? とも思ったのですが。 フォーム上に配置してあるコントロール等、もう少し情報が欲しいですね。 長文失礼致しました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.