c#:高DPI環境化で、画面レイアウトが崩れる問題

投稿日:2017-08-07

自分の環境は高DPI(125%以上)ではないので、意識していなかったけど、客先環境でハマッたので。

状況は、Multirowを使った表部分が、高DPI環境下(125%)だと、レイアウトが崩れる問題。

結論からいうと、multirowは高DPIへの対応済みなので、意識する必要は無かった。
https://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=34264


問題だったのは、表のdockプロパティ

親コンテナにドッキングとかのアレです。

これがFillになってなかっただけ・・・

 

他の画面は普通に表示出来るのに、なんで特定の画面だけ、レイアウトが!?!?って1ヶ月ほど悩んでたんだけど、プロパティを修正したら、あっさり解決(笑

最初はスプリットコンテナーが悪さしてると思って、AutoScaleModeプロパティを修正してみたり、レイアウトを調整し直してみたりとアレコレやった時間を返して欲しい。

他の画面では、フォームに合せてドッキングさせてたから、まさかこの画面だけっていうのでした。

でも、自分の環境でDPIを125%に変えてみても、レイアウト崩れが発生しなくて、普通に原因が分かりづらかった。

というのも、解像度が小さいが故?なのか、(1366×768)の解像度で試してもダメだった。

で、外付けディスプレイを用意して、1920×1080の解像度で確認する必要があったのよね。

そりゃ、分からんてw







-C#
-


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[C#]DateTimePickerは、CloseUpイベントで日付変更を取得する

日付関連で、取得した値がどうか?ってのを検出して判定する必要が出たのでメモ。 CloseUpイベントで何が判定されるのか? https://msdn.microsoft.com/ja-jp/libra …

[C#]ToStringメソッドで簡単に桁区切りを実現する方法

結論 ToStringメソッドと書式設定で解決。 int a = 1; int b = 1; int ab = a * b; string c = ""; //「1」になる c = …

[C#]systemcolorを使う

ボタンとかを作成した時に、BackColorとかにデフォルトで設定される色を変更したいけど、何かのアクション以外は、デフォルト職を使いたい。 って時に多分使える。 SystemColorsクラス(Mi …

Excelでシートをコピーする時に、「名前が既に存在します。」と言われるのを回避して、Excel出力を早くしたい。

結論から書いてしまうと、名前の重複を削除しても、Excelの出力は別に早くならなかった。 早くなるという意味だと、手動でシートをコピーした時に、いちいちダイアログの対応をしなくて済むので、自分で作業し …

C#で日数計算を行うのに、DateDiff関数を使う以外の方法。でも、ぶっちゃけ関数使った方が早いし正確だよ。

C#に限らず、プログラミング言語にはDateDiff相当の関数が用意されているはずです。 Excelでは普通に加減算が可能ですが。 そして、結論を言ってしまうと、そういう関数がある場合、それを使うべき …


カテゴリー