0

Wenn ich in Visual Studio 2008 mit einem Smart Device-Projekt den Window Forms-Designer zum Hinzufügen von Steuerelementen zu einem Formular verwende, werden die Steuerelemente an der richtigen Stelle angezeigt, wenn das Programm tatsächlich ausgeführt wird, unabhängig davon, ob das Gerät über ein QVGA verfügt oder VGA-Bildschirm. Wenn ich jedoch dem Formular in meinem Code manuell Steuerelemente hinzufüge, ohne den Designer zu verwenden, muss ich zur Laufzeit prüfen, ob das Gerät über einen VGA-Bildschirm oder einen QVGA-Bildschirm verfügt. Wenn es ein VGA-Bildschirm ist, muss ich für jedes manuell hinzugefügte Steuerelement die x, y, Breite und Höhe um 2 multiplizieren. Warum ist das nur für Steuerelemente erforderlich, die hinzugefügt werden, ohne den Designer zu verwenden?Wie ist Visual Studio 2008 Windows Forms Designer sowohl mit QVGA als auch mit VGA kompatibel?

Ich habe soeben einen Kommentar unter der ersten Antwort hinzugefügt.

Antwort

1

Steuerelemente, die zur Entwurfszeit hinzugefügt werden, werden automatisch skaliert, wenn zuerst aufgrund dieser Eigenschaften in den designer.cs gezogen:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 

Wenn Sie dynamisch Steuerelemente zur Laufzeit hinzufügen, müssen Sie Ihre eigene Skalierung auszuführen . Es ist nicht ideal, aber es ist einfach so, wie es funktioniert.

+0

Ich verstehe immer noch nicht. Die vom Designer hinzugefügten Steuerelemente werden zur Laufzeit dynamisch hinzugefügt, es handelt sich lediglich um generierten Code. Dies ist besonders verwirrend, wenn Sie sowohl Designer-Steuerelemente als auch Steuerelemente manuell hinzugefügt haben, da der Code, den Sie hier gepostet haben, weiterhin existieren würde. –

Verwandte Themen