2010-08-24 10 views
5

ich ein sonderbares Problem, das ich brauche, um herauszufinden, wie zu lösen,.NET-Steuerelemente Ändern der Größe zwischen Computern

ich die letzten Wochen verbracht habe, an einem Projekt für die Arbeit an meinem Laptop arbeiten, aber wenn ich öffnen Sie das Programm auf einem der Arbeits Stück Menge die Kontrollen die falsche Größe und über Schoß etc sind,

die Unterschiede zwischen den Maschinen ist dies:

Laptop:

Windows 7 Pro; Anzeige - 1920 * 1040; Visuelle Studio 2008; .NET Framework 3.5

Arbeit Desktop:

Windows XP Pro; Anzeige: 1024 * 768; visuelles Studio 2008; .net-Framework 3.5;

um das Problem besser zu beschreiben, habe ich ein Panel, das ich 300px breit eingestellt habe, die eine Beschriftung mit Tag und Tag im Format mm-DD-yyyy hat, mit Arial und Schriftgröße 8.

Auf dem Laptop passt alles perfekt aber auf dem Desktop scheint das Panel kleiner und das Etikett zeigt nur die Hälfte des Textes.

Das ist nur eines von vielen Problemen ist, ist eine andere mit Farbe system.control eine komplett andere Farbe zwischen den Systemen zu sein scheint (althoug ich diese Zahl ein win7 vs xp Problem zu sein)

Was kann ich tun, um repariere das? ist es ein Problem mit der Windows-Version? (Ich habe xp auf einer vmware Maschine auf meinem Laptop, also könnte ich es kodieren und entwerfen)

ist es ein Anzeigeproblem? - das ist ein großes Problem für mich, da ich nur 1 Laptop habe und ich denke, dass dieses Problem mich Markverlust bei meinem letzten Auftrag für Uni verursacht haben könnte (ich kodierte auf Laptop und öffnete nie auf einem Desktop bis heute - also hatte keine Ahnung davon Dieses Problem)

EDIT: Ich habe eine Lösung der Art für mein spezielles Problem gefunden, entdeckte ich, dass mein Laptop auf 125 dpi Einstellungen für Sehbehinderte arbeitete (keine Ahnung, wie ..), so dass ich es zurückgesetzt habe zurück zu 100% oder 96Dpi Was meine Probleme behoben hat, und nachdem ich mit ein paar anderen Entwicklern, die ich kenne, geplaudert habe, sagen sie, dass sie dazu neigen 96 dpi zu entwerfen, während sie ein wenig Leerraum um den Text herum lassen. aber dann tendieren sie nicht dazu C# viel zu verwenden und codieren hauptsächlich alles in C++ mit QT-Framework.

+2

Dies ist ein häufiges Problem mit WinForms und hängt mit der DPI der einzelnen Anzeigen zusammen. Wenn Sie nach "winforms DPI" suchen, werden Sie eine Menge Treffer bekommen. –

Antwort

11

Der Videoadapter in Ihrer Workstation weist eine andere Einstellung für Punkte pro Zoll auf. Das Formular wird automatisch neu skaliert, um dies zu berücksichtigen.

Dies wird auch passieren, wenn Sie Ihr Produkt versenden und es auf dem Client-Rechner läuft. Das Ändern der AutoScaleMode-Eigenschaft des Formulars ist kein Update, das nur abgeschnittenen Text in den Steuerelementen erzeugt. Stellen Sie sicher, dass das Design für Layoutänderungen unempfindlich ist. Dock, Anchor, TableLayoutPanel, FlowLayoutPanel, das Resize-Ereignis für schwierige Fälle.Stellen Sie sicher, dass die Steuerelemente die Font-Eigenschaft des Containers erben (im Fenster "Eigenschaften" nicht fett)

2

Stellen Sie sicher, dass Sie die Größe Ihres Panels in Visual Studio ändern können, wobei alle darin enthaltenen Steuerelemente neu positioniert und in der Größe angepasst werden. Sie können Anker verwenden, um dies zu erreichen, oder vielleicht sollten Sie eine TableLayoutPanel Kontrolle anstelle einer regulären Panel verwenden.

Verwandte Themen