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

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

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

Re[3]: Windows10でVB作成アプリのフォームがおかしくなる


(過去ログ 136 を表示中)

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

■80216 / inTopicNo.1)  Windows10でVB作成アプリのフォームがおかしくなる
  
□投稿者/ しじみマン (1回)-(2016/06/23(Thu) 14:17:01)

分類:[Windows 全般] 

先日、Windows10搭載のノートを購入しました。
(DELLのInspiron 13 5368/Windows10 Pro搭載)

そこで、私が以前にVB2008で作成したWinFormアプリをこのノートで動かしてみましたが、
色々と操作をしているうちに、ダイアログとして作成したフォームが大サイズで表示され、
このフォームの下部に配置されているボタンが押せなくなりました。
(右上の×で画面を閉じることはできました。)

また、他のフォームでは、異様に小さいサイズになるという現象や、
フォーム自体ではなく、コントロールのテキスト表示のサイズのバランスが悪い
(通常よりも大きかったり小さかったり)という現象も確認しました。

ただし、これら現象は必ず出るわけではなく、
どのタイミングでこれらが発生するのかも分かりません。

なお、ノートの操作はせいぜいキーボードとマウスのみで、
モニタのタッチ操作は行っておりません。

なお、使用したマウスにはマウスホイールの代わりに
指でなぞって同様の操作を行うタイプのものです。
(指でなぞる部分の正式名が分かりませんでした。)
ここは触ったかもしれません。


この現象の原因が分かる方はいらっしゃいますでしょうか?
よろしくお願い致します。
引用返信 編集キー/
■80237 / inTopicNo.2)  Re[1]: Windows10でVB作成アプリのフォームがおかしくなる
□投稿者/ 魔界の仮面弁士 (749回)-(2016/06/23(Thu) 20:41:09)
2016/06/23(Thu) 20:44:59 編集(投稿者)

No80216 (しじみマン さん) に返信
> 先日、Windows10搭載のノートを購入しました。

Windows の dpi 設定は幾つになっていますか?
http://utaukitune.ldblog.jp/archives/65738238.html


もしも 100% より大きな値になっているとしたら、
100% に変更することで、ズレが生じなくなるかもしれません。


もしそれでズレが解消するようであれば、アプリケーション マニフェストにて
dpiAware を true にしてみてください。
https://blogs.msdn.microsoft.com/ttanaka/2014/08/22/dpihigh-dpi-3-12503/




> (指でなぞる部分の正式名が分かりませんでした。)
「タッチパッド」です。


> (DELLのInspiron 13 5368/Windows10 Pro搭載)

型番で調べてみると、13.3インチ液晶・FullHD(1920x1080)なタッチパネル機のようですね。
すなわち、画素密度は (√(1920*1920 + 1080*1080))÷13.3 ≒ 165.632118051 ppi 相当。


一方、Windows の dpi スケーリングは、
 100% → 96dpi
 125% → 120dpi
 150% → 144dpi
 200% → 192dpi
 250% → 240dpi
 300% → 288dpi
ですから、OS の dpi 設定が 100% ではなく、150% あたりに設定されているものと推察します。



> そこで、私が以前にVB2008で作成したWinFormアプリをこのノートで動かしてみましたが、
> 色々と操作をしているうちに、ダイアログとして作成したフォームが大サイズで表示され、
> このフォームの下部に配置されているボタンが押せなくなりました。
> (右上の×で画面を閉じることはできました。)

フォームが読み込まれる際には、デザイン時のサイズ(AutoScaleDimensions プロパティ)と
実行時のサイズ(CurrentAutoScaleDimensions プロパティ)から、
拡大率(AutoScaleFactor プロパティ)が求められ、その値を使って
フォームがリサイズされる仕様です。(コードから実行する場合は PerformAutoScale メソッド)

このときの比率の求め方は、AutoScaleMode プロパティに依存しており、既定では Font 依存です。
この場合、システムフォントのサイズを基準として変化する設定になっていますし、
フォームのフォントサイズを変更した場合などでもスケール処理が行われます。

http://thehikaku.net/pc/other/dpi.html
http://dobon.net/vb/dotnet/form/autoscale.html
http://d.hatena.ne.jp/Yamaki/20130308/1362728843
http://okwave.jp/qa/q6164455.html
引用返信 編集キー/
■80252 / inTopicNo.3)  Re[2]: Windows10でVB作成アプリのフォームがおかしくなる
□投稿者/ しじみマン (2回)-(2016/06/24(Fri) 14:38:26)
No80237 (魔界の仮面弁士 さん) に返信
> Windows の dpi 設定は幾つになっていますか?
> http://utaukitune.ldblog.jp/archives/65738238.html
>
>
> もしも 100% より大きな値になっているとしたら、
> 100% に変更することで、ズレが生じなくなるかもしれません。
>
(略)
> ですから、OS の dpi 設定が 100% ではなく、150% あたりに設定されているものと推察します。

まさにご指摘の通り、dpi設定が150%になっていました。

もう少し確認してみます。
引用返信 編集キー/
■80281 / inTopicNo.4)  Re[3]: Windows10でVB作成アプリのフォームがおかしくなる
□投稿者/ しじみマン (3回)-(2016/06/27(Mon) 12:25:46)
魔界の仮面弁士様のアドバイス通り、dpi設定を100%にすると、
今回のような問題は出ないようです。
ありがとうございました。

アプリケーション マニフェストというものを確認します。

ところで、この問題は、Windows10以前のOSでも
発生するものなのでしょうか?

よろしくお願い致します。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -