2011-01-18 4 views
0

私のアプリケーションはファイルから情報を読み込み、フォームのxページ分の量のコントロールを作成します。異なるDPIの下でフォームにコントロール(トラックバー、複数行のテキストボックス、ラベル)を追加する - C#

私の問題は、ユーザーが標準のWindows 96とは異なるDPIを持っている場合、追加されたコントロールが互いに重なり合うということです。フォームの初期コントロールは正常です。

どのようにユーザーのマシンで実行されているものではなく、96 DPIに変更するコントロールを設定できますか?

これは非常に困難な場合は、ユーザーDPIが何であるかを確認する方法はありますか?私はあなたが96DPIなどを使用すべきであるという警告を投げることができます

ありがとう、私に与えることを助けてください!

答えて

0

 Graphics formGraphics = this.CreateGraphics(); 
     if ((formGraphics.DpiX != 96) || (formGraphics.DpiY != 96)) 
     { 
      MessageBox.Show("You are attempting to run this application in an unknown DPI. This application has been designed for Normal size (96 DPI), you may experience some display issues if you continue to use your current settings. Please change your Display settings back to normal size through your control panel to ensure you don't experience any problems. Thank you.", 
      "Warning", 
      MessageBoxButtons.OK, 
      MessageBoxIcon.Exclamation, 
      MessageBoxDefaultButton.Button1); 
     } 
1

あなたはWindows.Formsを使用すると仮定します。プロパティAutoScaleModeを使用して、各GUIコントロールのズーム方法を制御できます。選択できるオプションがたくさんありますので、あなたに最適なものを試してみるか、this article in MSDNを読むと、Windows.Formsのコントロールのズームの原則についての詳しい情報が得られます。ただ、私がこれを書いた自分の質問に答え、私のフォームのLoadイベントでそれを置くために

+0

設定AutoScaleModeなしに。ありがとう。 – RHodgett

関連する問題