構想していた画面解像度より小さくなるならまだしも、大きくなるのならば
私ならば放っておくことでしょう。広大な画面領域が欲しいからこそ、
1600x1200やら1920x1050やらの大きなディスプレイを使っているのであって
わざわざ領域の大きさに合わせて勝手にサイズを拡大されるのは迷惑、とい
う考え方もあります。
……と、まずは屁理屈を並べてケムに巻いてしまおうと試みます。
言い負けた場合
拡大するときは相似形に大きくするのでしょうか、それとも各サイズ用に
合わせた専用のフォームを用意するのでしょうか、それとも例えばExplorer
のようにほとんどのパーツは固定位置でリスト部分だけが大きくなるような
仕組みでしょうか。
専用フォームの場合
のぶさんの方法で十分ではないかと思います。
一部のリストなどのみが大きくなればよい場合
フォームには Anchor 機能がありますから、それをうまく利用します。
わたしは、たいていこれで逃げています。フォームが閉じる際にでも
サイズ等を記録しておき、次の起動時にその位置、サイズで起動する
ようにしておけば、それほど文句などは来ませんから。
相似形の場合(*これについては頭の中だけで考えてます)
フォームやコントロールの基礎となる System.Windows.Forms.Control
にはLocationとかSizeとかのプロパティがあります。
メインとなるフォームやダイアログなどのコンストラクタあたりで、
これらの数値を開発時の解像度と実行環境の解像度で倍率を作って、
適切に数値を与えなおせば良いかと思います。
ただし、フォームに乗っているすべてのコントロールのプロパティを
変えなければならないので、たとえば再帰的な処理などでうまく更新
しなければならないでしょう。
また、ラベルについては、単純にSizeを変えただけだと、まず間違い
なく間が開きすぎてトボケた感じになるのは、どうしようもないでし
ょう。
--
----- Takeshi SHIGIHARA
cyg...@tka.att.ne.jp -----
ブタも投げれば空を飛ぶ--RFC1925.
"Takeshi SHIGIHARA" からの元のメッセージ: