Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Form 設定時のサイズを取得できる関数はありますか?
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30647#CommentId84697
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2021/9/24 15:38:34
Form の AutoScroll プロパティを True にしておくのはどうでしょうか。
フォームサイズを狭くした場合、入りきれなくなった部分をスクロール表示できます。
ブラウザーで表示する Web サイトのように。手抜きですが。
> Me.Width Me.Height を拾うと各々、1200, 800 になってしまいます。
フォームデザイン時には、Size プロパティのWidth や Heighを重視するかと思いますが、
実際に Form1.Desiginer.vb に出力される時には ClientSize プロパティとして設定されます。
Size はフォームのタイトルバーや枠線を含む外側のサイズですが、タイトルバーなどのサイズは
OS 設定によって変化することがあるため、本来必要な内側のサイズ (ClientSize) が記録されます。
> FWXGA などそれより小さい画面に縮小表示したいのですが
AutoScroll を使わない場合は、
① あらかじめ、想定しうる最小サイズで画面を設計しておく
② 実行環境に合わせて、動的にフォームサイズを決定するような設計にする
などの選択肢があります。後から対応するのは手間がかかりますけれども。
また、各コントロールの Anchor プロパティや Dock プロパティを適切に設定しておけば、
フォームサイズが変化した時に、中のコントロールサイズを動的に変化させることもできます。
> Full HD の画面サイズ用に書いた Formアプリ を
> FWXGA などそれより小さい画面に縮小表示したいのですが
昨今では物理解像度だけではなく、論理解像度も考慮した方が良いかもしれません。
DPI 設定が 100% より大きな値に設定されている環境の場合、ドットバイドットにならないので。
また、.NET Framework バージョンによって、高 DPI 環境への対応度合いが異なるため、
どの .NET Framework バージョンを使うのかも明らかにした方が良いですね。
①フォームデザイン時には、StartPosition プロパティも確認しておきましょう。
この値が WindowsDefaultBounds に設定されている場合、フォームサイズは
デザイン時に指定したサイズではなく、実行環境依存のファイルになります。
StartPosition は、Location をデザイン時に定める場合にも重要です。
②高 DPI 環境の場合、Form にある AutoScaleMode プロパティの影響を受けます。
この設定が None 以外になっている場合、DPI が異なる環境で
実行した場合、フォームのサイズが実行環境にあわせて調整されます。
AutoScaleMode の既定値は Font です。
③AutoScaleMode が Font になっている場合、デザイン時の Font プロパティも
設定しておいた方が無難です。Font が未設定の場合、既定のフォントが使われますが、
デザイン時のフォームサイズが、デザイン時に保持された AutoScaleDimensions プロパティの
設定に依存して変化します。