今、触っているのが Visual Studio 2005(以降、VS 2005)の VB.NET なんで、最新の .NET ではどうなのかわからないが・・・
本来、縦 1000px で表示する画面を、縦が 700pxほどしかないディスプレイで表示したところ、ディスプレイ内に表示できるように(?)自動的に画面の縦が 700pxにリサイズされてしまった。
(ちなみに FormBorderStyle プロパティが FixedSingle に設定されているのでユーザが自分でリサイズすることはできない)
現在の環境は、ディスプレイ1がノートパソコンのディスプレイで、本来 1,920 x 1080 の解像度のディスプレイを 150% 表示としているため、縦は 700px となっている(加齢のため、字が小さくてよく見えないもんで(^^;)。もう一台、「複数のディスプレイ」を「表示画面を拡張する」の設定でディスプレイ2が接続されており、こちらは 1,680 x 1,050 の解像度で 100% 表示としている。
本来、.NET アプリの画面サイズが 1,280 x 1,000 なので、ディスプレイ2の方で表示してデバッグなどしていたのだが、ディスプレイ2の電源を入れずに起動してしまい、自動的にディスプレイ1で表示されてしまったのだ。
で、その後、縦 700pxの状態から戻らなくなってしまった。
VS 2005 のデザイン画面で Size プロパティを確認しても、ちゃんと 1,280 x 1,000 になっている。しかし、ディスプレイ2で表示しても 1,280 x x 700 で表示されてしまう。
試しに Size プロパティで縦を 900pxとかに変えてみても表示は変わらない。実際の画面表示サイズは 1,280 x 700 のままなのである。どうも、Size プロパティの値を正しく認識していない???
これは、Visual Studio を立ち上げ直してみても、PC を再起動してみても変わらなかった・・・
結局、原因は(片方の)ディスプレイを 150% 表示していたためのようである。
ディスプレイ設定画面で「拡大縮小とレイアウト」の「テキスト、アプリ、その他の項目のサイズを変更する」設定を 100% にしたところ、Size プロパティの値が 1,280 x 1,000 から実際の表示サイズである 1,280 x 700 に変わっていたので、これを 1,280 x 1,000 に変更したところ表示は正常に戻った。
もちろん、Visual Studio が 2005 という古いものだというのはあるだろう。その時代には Windows の設定で画面の倍率変更ってできなかったのかも?だから VS 2005 はそのあたりの値が正常に取得できず誤動作してしまうのか???
まあ、それでもあえて言おう。
「Microsoft よ・・・。なんだかな~、なんだかな~」