2012-11-19 8 views
6

私のマシンに自分のフォームをビルドすると問題はないようですが、別のコンピュータでコンパイルするとフォーム自体のサイズが間違っています。ラベルは移動し、物事は適切に整列されなくなります。フォームが別のコンピュータで異なって見える

すべてのコンピュータですべてが同じに見えることをどのようにして保証するのですか?

私はAutoScaleModeをnoneに設定しようとしましたが、少し助けましたが、ラベルは部分的に対応するテキストボックスの下にありました。

+0

コントロールのサイズと配置方法は?私は決して私のフォームが異なる決議でスクランブルを終えるのを見たことはありません。 – Alex

+0

DPI 2台のマシンの設定が異なる可能性があります。 –

+0

コントロールをどのようにグループ化しましたか?レイアウトコントロールを使用していますか?アンカーを使用していますか? –

答えて

5

フォントまたはDPIが異なります。

そして、私は実際にAutoScaleMode = (most appropriate of font or dpi)と言う方法を見つけたことはありません。

しかし、AutoScaleMode = DPIAutoScaleMode = Fontを試してください。 のいずれかが動作するはずです。

これを処理する信頼できる方法はありませんでした。私たちの職場はすべてのワークステーションでDPIを実施するためにUSEDされていますが、それ以降は変更されています。これを処理する最善の方法は、コントロールの絶対配置ではなく、FlowLayoutPanelまたはTableLayoutPanelsを使用してコントロールをレイアウトすることです。

+0

コントロールパネル\表示とパーソナライゼーション\ディスプレイに行くと、100%、125%、150%の中から選択できます。私はこれがDPIを変えると仮定しています。どのようにフォントが異なるマシンで異なるでしょうか? – NMunro

+0

あなたはそうです。それがDPIです。 Microsoftは私の意見では奇妙な言葉で言います。ダイアログなどで使用するシステムフォントを[this](http://www.sevenforums.com/tutorials/1175-fonts-change.html)のように変更することができます – hometoast

+0

DPIが変更されたかどうかを知る方法はありますか?フォント?私の好ましい解決策は、物事に絡みつくことを止めるように伝えるメッセージボックスです。笑 – NMunro

0

私は最近この問題を抱えていました。これは125%または中位の設定でコンパイルすると、100%または150%のどちらかで変更がバイナリに影響しないことが判明しました。 AutoScaleModeをNoneに設定する必要があります。

0

トピックが終了しても、同じ問題に直面してから私の2セントは、フォームが異なるサイズ(私の場合はより大きい)を持っていましたが、私は元のフォームをコントロールよりも小さな寸法にして、それを自動的に拡大させるだけで解決しました。

この投稿のガイドラインも適用しましたが(How to write WinForms code that auto-scales to system font and dpi settings?)、問題は解決しませんでした。