2009-09-15 5 views
2

.NET Framework 2.0でC#アプリケーションを開発しています。C# - Windows XP Professionalのレイアウトの問題

問題は、クライアントのPCでコントロールが拡大され、レイアウトの変更(コントロールの位置が変更される)、ボタンが表示されないことがあることです。 2-3のテキストボックス、2-3のボタン、いくつかのラベルを持つフォームでさえも起こります。私は多くの調査を試みた。フォームのサイズ変更イベントでメッセージを表示しようとしました。しかし、それは呼ばれることはありません。もう少し掘り下げた後は、フォームにResumeLayout(false)が呼び出されていても、Designer.csファイルに見えましたが、これはコントロールの展開/配置を引き起こします。

クライアントは、DellノートパソコンでWindows XP Professionalを使用しています。 Windows XP Professionalを搭載した他のラップトップで問題を再現することができます。しかし、他のOS(Windows XP HomeやWindows Vistaなど)ではそうではありません。 Windows XP Professionalを搭載した私のデスクトップでは、再現性がありません。

この問題を解決するにはどうすればよいですか?

+0

恐ろしい!皆さんありがとうございました。 – Rakib

答えて

4

OSと関係がありますか? dpiの問題のように聞こえます。 「標準」は96 dpiです。フォームが96 dpiでデザインされていた場合は、別の設定で表示される可能性があります。

XPでのdpi設定の確認/変更方法については、this articleを参照してください。

編集:TableLayoutPanel Controlをフォームのレイアウトに使用できることを忘れてしまいました。オートサイジング機能を使用すると、どんなdpi設定でも「正常」に見えるようになります。

3

これは、おそらくWindows XPのDPI設定のためです。

標準(96)DPI設定を使用していますが、別の設定(つまり:120)を使用してセットアップしている場合、コントロールのレイアウトが混乱することがよくあります。

これを処理する「正しい」方法は、必要に応じてサイズを変更できるレイアウト要素を使用してレイアウトを自動的に構築しようとすることです。これはWindowsフォーム(およびWPFで修正されたものの1つ)では難しいものです。

関連する問題