
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET2005 TextBox 高さ(Heig...
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
プロポーショナルフォントの文...
-
エディットボックスのフォント...
-
リソースエディタでスタティッ...
-
フォントの大きさ
-
枠内に文字列をぴったり収めるには
-
チェックボックスの文字サイズ...
-
JTableのヘッダー文字のサイズ変更
-
Msgboxで使用するフォントの指...
-
作成したアプリケーションの画...
-
[VC]リストビューで等幅フォント
-
static 文字が上に張り付いて・...
-
wordで分数打とうとするとフォ...
-
ハングル文字を入力するには、...
-
イラストレーターCS6が必ずフリ...
-
EDITBOXに関して
-
エクセルで作った新しいウイン...
-
グラフの交点の求め方(Excel)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンボボックス内の文字サイズ変更
-
VBAのフォント変更(エクセルか...
-
VB.NET2005 TextBox 高さ(Heig...
-
エディットボックスのフォント...
-
ドロップダウンリストのフォン...
-
リソースエディタでスタティッ...
-
文字色 エクリプス
-
コンボボックスの一部のアイテ...
-
JakaraPOI セル内部のフォント...
-
プロポーショナルフォントの文...
-
Macbook Word フォント色変更で...
-
VBA TEXTBOXテキストボックスの...
-
フォントごとの文字列の幅の取得
-
wordで分数打とうとするとフォ...
-
ワードでコントロールツールボ...
-
static 文字が上に張り付いて・...
-
C# のフォームデザイン&レイア...
-
リストコントロールの文字の大...
-
CSSでの大きさの単位について
-
リストコンロールの一行だけを...
おすすめ情報