C# のフォームデザイン&レイアウトについて
Windowsフォームのデザインやレイアウトについて質問です。
テキストボックスやラベルを解像度の違いによって違う見え方になる為、スケールにて見え方を合わせています。
しかし、添付画像の様にレイアウトが崩れてしまいます。
解像度の違うディスプレイで、レイアウトが同様に見える様にするにはどのようにすれば良いでしょうか?
添付画像左側の様にテキストボックスやラベルを引っ付けて並べたいです。
もう長い間悩んでいます。
どなたか、きっかけやアドバイス等、ご教授よろしくお願いいたします。
また、ソースコードや参考サイトのリンク等もあれば、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
最近、フォントサイズを変更するケースにほとんど遭遇してこなかったので意識していませんでしたが、過去(WIn3.1時代)に1度だけ痛い思いをしたことがあります。
その時には、苦肉の策で「Bitmap」に変更したように記憶しています。今手元のOSで調べてみたのですが、
フォントサイズ(DPI)の変更 - VISTAまで
ディスプレイ(倍率指定) - Windows7
Windows7から方式が変わったのですね。
Windows7では、DPIではなく比率(100%,125%,150%)という単位に変わっています。
上記比率やカスタム比率でも確認しましたが、その比率に拡大されるだけでレイアウトが崩れると行ったことはありませんでした。
●なぜ、フォントサイズ(DPI)を変更するとレイアウトが崩れるのか
FormプロパティのAutoScaleModeはどのような設定になってますか?
None-自動スケーリング無効
Font-クラスで使用されているフォント (通常はシステムのフォント) サイズを基準にスケーリング
Dpi-ディスプレイの解像度を基準としてスケールを制御(一般的な解像度は 96 dpi と 120 dpi)
Inherit-クラスの親のスケーリング モードでスケール制御(親が存在しない場合は、自動スケーリング無効)
例えば、
”Font”設定にして、Formのフォントサイズを変更するとFormのサイズが変わり、子コントロールの配置もフォントも変わります。その際、計算がおかしくなる場合があって、それが原因で違和感のあるレイアウトになってしまう場合があります。
”None”に設定すると、フォントサイズを変えてもFormのサイズは変わりません。その際、子コントロールのフォントを単独で設定していない(Formのフォントを継承)と、Formで変更したフォントに切り替わります。子コントロールのロケーションは変わりませんがフォントサイズの変更に伴い、コントロール自体のサイズが大きくなったり小さくなったりします。
これを回避するには(ベストな方法ではありませんが)子コントロール毎に(Formと異なる)フォントを指定する方法です。こうしておくと、誤ってFormのフォントが変わっても、子コントロールは影響を受けません。
”Dpi”の設定は、確認できていません。
●質問の答えとしては
確認できたわけではありませんが、
Form**.AutoScaleMode=AutoScaleMode.None として試してみてください。
[プログラミングの家庭教師]
非常に詳しい説明ありがとうございます。
FormプロパティのAutoScaleMode
が影響していたのですね。
現在、外出先からなので、テスト出来ていませんが、
帰って早々に試させていただきます。
子コントロールだけでなく、親コントロールのスケーリングは考えていませんでした。
本当に感謝です。m(__)m
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) マイクロソフト アクセス2021のフォームビュー作成でレイアウトを帳票形式から単票形式にあとから変更 1 2023/03/03 10:56
- 魚類 アクアリウムについて質問です。 現在、排水パイプと吸水パイプの位置で悩んでいます。 画像は45cm規 3 2023/08/21 18:28
- モニター・ディスプレイ Windows10 ダブル液晶の解像度がおかしくなってしまいました 4 2023/04/07 09:05
- Visual Basic(VBA) VB DataGridViewについて 3 2022/06/08 17:20
- HTML・CSS HTMLとCSS(ブラウザ関連)について質問です。 1 2023/03/07 08:07
- ホームページ作成・プログラミング アニメ公式サイト風なWebページを作りたいです。 無料のテンプレートはありますか? 2 2022/04/02 11:33
- 家具・インテリア 部屋のレイアウトに関する質問です。 3月からこのような間取りの部屋に引っ越す予定です。 この部屋の洋 1 2023/02/19 19:08
- インテリアコーディネーター 一人暮らし(1DK)のレイアウトで悩んでいます。 2階建てアパートの2階角部屋です。 配置したいもの 1 2023/07/08 06:36
- WordPress(ワードプレス) ワードプレスの403エラーについて 2 2023/03/06 14:38
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの大きさ
-
ドロップダウンリストのフォン...
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
Eclipseで修正したファイル名の...
-
D3DXCreateFontとID3DXFont::Dr...
-
wordで分数打とうとするとフォ...
-
カレンダーコントロールとサイ...
-
エディットボックスのフォント...
-
中国語のホームページを作りた...
-
リソースエディタでスタティッ...
-
VB.NET2005 TextBox 高さ(Heig...
-
チェックボックスの箱のサイズ...
-
OSの違いによるバーコード(CODE...
-
プロポーショナルフォントの文...
-
ワードで自作フォントが変更で...
-
JTableのヘッダー文字のサイズ変更
-
背景色のついでに文字色もかえ...
-
JComboBoxのサイズ変更
-
枠内に文字列をぴったり収めるには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
ドロップダウンリストのフォン...
-
チェックボックスの箱のサイズ...
-
VB.NET2005 TextBox 高さ(Heig...
-
エディットボックスのフォント...
-
VBA TEXTBOXテキストボックスの...
-
コンボボックスの一部のアイテ...
-
リソースエディタでスタティッ...
-
文字色 エクリプス
-
JTableのヘッダー文字のサイズ変更
-
JakaraPOI セル内部のフォント...
-
VBにて指定した通りにExcelの列...
-
Eclipseで修正したファイル名の...
-
プロポーショナルフォントの文...
-
Msgboxで使用するフォントの指...
-
ワードでコントロールツールボ...
-
WPFのフォントカラー変更につい...
-
エディットの文字サイズ変更
おすすめ情報