プログラミング: 2021年3月アーカイブ

今、触っているのが 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 を再起動してみても変わらなかった・・・

20210324_vs2005.jpg

結局、原因は(片方の)ディスプレイを 150% 表示していたためのようである。

ディスプレイ設定画面で「拡大縮小とレイアウト」の「テキスト、アプリ、その他の項目のサイズを変更する」設定を 100% にしたところ、Size プロパティの値が 1,280 x 1,000 から実際の表示サイズである 1,280 x 700 に変わっていたので、これを 1,280 x 1,000 に変更したところ表示は正常に戻った。

もちろん、Visual Studio が 2005 という古いものだというのはあるだろう。その時代には Windows の設定で画面の倍率変更ってできなかったのかも?だから VS 2005 はそのあたりの値が正常に取得できず誤動作してしまうのか???

まあ、それでもあえて言おう。

「Microsoft よ・・・。なんだかな~、なんだかな~」
Microsoft Report のメモ。

前の行の内容と同じだったら空白表示・・・というケース。

20210322_report1.jpg

この場合の「式」の例。(例えば「顧客番号」のフィールド)

=IIF(RowNumber(Nothing) > 1, (IIF((Previous(Fields!client_cd.Value) = Fields!client_cd.Value), "", Fields!client_cd.Value)), Fields!client_cd.Value)

    • 1行目は「前の行(Previous)」がないので、そのまま値を表示
    • 2行目以降は、「前の行(Previous)」の client_cd と現在の行の内容が同じなら空値(空白)表示

ちなみに、Fields!client_cd.Value は表示される値ではなく、その列にセットされる値そのものである。
そのため、例えば前の行が空白か?というような判断は不要。常に Previous(Fields!client_cd.Value) と Fields!client_cd.Value の値を比較するだけでよい。

このアーカイブについて

このページには、2021年3月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2021年2月です。

次のアーカイブはプログラミング: 2021年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら