2012-11-19 25 views
6

Wenn ich mein Formular auf meinem Computer erstellen, sieht es gut aus, aber wenn es auf einem anderen Computer kompiliert wird, ist die Größe des Formulars falsch. Etiketten werden verschoben und die Dinge sind nicht mehr richtig ausgerichtet.Formular unterscheidet sich auf einem anderen Computer

Wie kann ich garantieren, dass auf jedem Computer alles gleich aussieht?

Ich versuchte Einstellung AutoScaleMode zu keiner, und es half ein wenig, aber dann waren die Etiketten teilweise unterhalb der entsprechenden Textfelder.

+0

Wie werden Steuerelemente bemessen und platziert? Ich habe nie gesehen, dass meine Formulare in verschiedenen Auflösungen durcheinander gebracht wurden. – Alex

+0

DPI-Einstellungen auf den beiden Computern sind wahrscheinlich unterschiedlich. –

+0

Wie haben Sie Ihre Steuerelemente gruppiert? Verwenden Sie Layoutsteuerelemente? Verwenden Sie Anker? –

Antwort

5

Entweder die Schriftart oder die DPI unterscheiden sich.

Und ich habe noch nie wirklich einen Weg gefunden zu sagen AutoScaleMode = (most appropriate of font or dpi).

Aber versuchen Sie AutoScaleMode = DPI und AutoScaleMode = Font. Ein von ihnen sollte funktionieren.

Wir haben nie einen zuverlässigen Weg gefunden, damit umzugehen. Unser Arbeitsplatz VERWENDET, um die DPI auf allen Arbeitsstationen zu erzwingen, aber das hat sich seitdem geändert. Der beste Weg, um damit umzugehen, ist sicherzustellen, dass Sie Ihre Steuerelemente mit FlowLayoutPanel oder TableLayoutPanels statt der absoluten Positionierung von Steuerelementen gestalten.

+0

Wenn Sie zu Systemsteuerung \ Aussehen und Personalisierung \ Anzeige gehen, haben Sie die Wahl zwischen 100%, 125% und 150%. Ich nehme an, das ändert die DPI. Wie würde sich die Schrift auf verschiedenen Maschinen unterscheiden? – NMunro

+0

Sie haben Recht. Das ist die DPI; Microsoft fasst es meiner Meinung nach auf eine komische Art und Weise zusammen. Sie können die Systemschriftarten ändern, die in Dialogen usw. verwendet werden, wie [this] (http://www.sevenforums.com/tutorials/1175-fonts-change.html) – hometoast

+0

Gibt es eine Möglichkeit zu sagen, ob sie DPI geändert haben oder Schriftart? Meine bevorzugte Lösung wäre eine Nachrichtenbox, die ihnen sagt, dass sie aufhören sollten, sich mit Dingen zu beschäftigen. LOL – NMunro

0

Ich hatte dieses Problem vor kurzem und es stellt sich heraus, dass das Kompilieren bei 125% oder der mittleren Einstellung die binäre immun gegen Änderungen bei entweder 100 oder 150 Prozent macht. Sie müssen den AutoScaleMode weiterhin auf None festlegen.

0

Auch wenn das Thema vorbei ist, meine zwei Cent, da ich mit dem gleichen Problem konfrontiert war, hatte das Formular eine andere Größe (in meinem Fall größer), aber die Steuerelemente wo das gleiche, wenn behoben. Ich habe es nur gelöst, indem ich der ursprünglichen Form kleinere Dimensionen als der Kontrolle gegeben habe und sie automatisch wachsen ließ.

Ich habe auch die Richtlinien dieses Beitrags (How to write WinForms code that auto-scales to system font and dpi settings?) angewendet, aber es hat mein Problem nicht gelöst.

Verwandte Themen