C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VB画面をフルHD対応にする


(過去ログ 140 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■82186 / inTopicNo.1)  VB画面をフルHD対応にする
  
□投稿者/ teto (1回)-(2016/12/15(Thu) 09:46:56)

分類:[VB.NET/VB2005 以降] 

初めまして
VB初心者です 教えてください

開発環境 Microsoft Visual Studio Express 2013
使用言語 Visual Basic


現在、ノートPC 1366, 768 で作成しているんですが

別モニター フルHD 1920,1080 で実行すると

1366, 768のまま表示されます

そこで

ノートPCで作った1366,768の画面をフルHDで表示させる時に
1366,768の画面のままフルHD解像度に変更して

表示させる事は可能でしょうか??


というのはノートPCが作成用で

たまに表示させるがフルHDになってしまって
わざわざそれ用に画面を作り変えているので

できるならコードで指定できるのか
教えてほしいです

よろしくお願い致します。

引用返信 編集キー/
■82187 / inTopicNo.2)  Re[1]: VB画面をフルHD対応にする
□投稿者/ 魔界の仮面弁士 (1024回)-(2016/12/15(Thu) 10:21:56)
No82186 (teto さん) に返信
> ノートPCで作った1366,768の画面をフルHDで表示させる時に
> 1366,768の画面のままフルHD解像度に変更して
> 表示させる事は可能でしょうか??

その解像度だと、DPI 設定は 100%(96dpi)のままでしょうね。

WPF アプリなのか、UWP アプリなのか、ASP.NET なのか、Windows Forms なのか、
それぞれで異なりそうですがが、ひとまず Windows Forms と仮定して回答します。


> たまに表示させるがフルHDになってしまって
> わざわざそれ用に画面を作り変えているので
> できるならコードで指定できるのか
> 教えてほしいです

全画面表示で構わないなら、狭い FWXGA 解像度の方で設計し、
単純に最大化表示するという手があります。
(FullHD 時には右下方向に余白はできますが)

手順的には WindowState = Maximized にするか、または
Size/StartPosition/Location を変更する感じです。

この時、フォームサイズに応じてコントロールのサイズや配置も
変えたいのであれば、各コントロールの Anchor / Dock プロパティを
設定すれば OK です。

たとえば『メモ帳』は、テキスト入力欄やステータスバーなどが
フォームサイズに合わせてリサイズされるようになっていますが、
あれと同様の仕組みにできます。この場合は、フォームの
MinimumSize プロパティも設定しておくのを忘れずに。



――上記は、FWXGA を前提として設計する手法ですが、
あるいは逆に、FullHD を前提として設計する手法もあります。

フォームの AutoScroll プロパティを True にしておくと、
ブラウザのように、はみ出た部分までスクロールバー表示できるため、
FWXGA サイズのフォームに、FullHD 領域分のコントロールを
配置することができますので、これを使います。


なお、ノートの外付けモニタに切り替えた場合など、
画面設定の変更に応じて瞬時に画面サイズの調整を行いたいなら、
Microsoft.Win32.SystemEvents クラスの
DisplaySettingsChanging/Changed イベントで
これらのリサイズ処理を実施するということができます。


また、マルチモニタ環境を考慮する場合は、各モニタのサイズや位置を
Screen.AllScreens プロパティで調べられます。
引用返信 編集キー/
■82188 / inTopicNo.3)  Re[2]: VB画面をフルHD対応にする
□投稿者/ teto (2回)-(2016/12/15(Thu) 10:39:35)
No82187 (魔界の仮面弁士 さん) に返信

返信ありがとうございます

Windows Formsです
伝え忘れてすいません

現在 FormLoadで強制的に
'フル画面にする
Me.WindowState = FormWindowState.Normal
Me.FormBorderStyle = FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized

で、境界線もなにもない画面を表示させています


これをフルHDに表示させると、左上だけに表示され

右下はほぼ空白になってしまっています。


今のノートの画面で作成したものを
そのまま全てリサイズできる方法がわかりません


Microsoft.Win32.SystemEvents クラスの
DisplaySettingsChanging/Changed イベントで

できるのでしょうか??

引用返信 編集キー/
■82194 / inTopicNo.4)  Re[3]: VB画面をフルHD対応にする
□投稿者/ 魔界の仮面弁士 (1027回)-(2016/12/15(Thu) 15:35:39)
No82188 (teto さん) に返信
> これをフルHDに表示させると、左上だけに表示され
> 右下はほぼ空白になってしまっています。

フォームが最大化されない、ということでしょうか。

それとも、最大化はされているけれども、フォームの右下エリアに
何もコントロールが配されていない状況を改善したいということでしょうか。

後者だとしたら、前回の回答の Anchor / Dock プロパティを試してみてください。
画面レイアウトによっては、FlowLayoutPanel や TableLayoutPanel を併用したり、
リサイズ用に Splitter あるいは SplitContainer を利用するのも手かと思います。


> Microsoft.Win32.SystemEvents クラスの
> DisplaySettingsChanging/Changed イベントで
> できるのでしょうか??
いいえ。これはモニタ設定が変更された事を通知するだけです。
レイアウトの調整やリサイズなどは、御自身で行うことになります。

たとえば回転可能なモニタで縦横方向が変更された場合などに
ScreenOrientation に応じて画面レイアウトの再調整を
即座に行いたいようなケースで使うことができます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -