Frage

Ich habe den gleichen UI -Code auf meinem XP English Machine und auf XP -japanischer Maschine. Aus irgendeinem Grund ist das Verhalten zwischen diesen beiden Maschinen unterschiedlich:

Auf der japanischen Maschine wird das OnResize -Ereignis während des InitializeComponent -Aufrufs ausgelöst (ich denke, das von Lebensleiterfunktion). Auf der englischen Maschine nicht.

Ich habe eine Überschreibungsmethode, um diese Änderungen der von mir definierten privaten Variablen zu ändern. Da die Komponente nicht vollständig beladen war (der CTOR läuft noch), sind diese Variablen null und ich bekomme eine Ausnahme.

Ich kann den Code beheben, indem ich prüfe, ob die Variable null ist oder nicht, aber ich würde gerne verstehen, warum er an erster Stelle aufgerufen wird und warum er nur auf dieser Maschine passiert.

Während meiner Suche über das Netz fand ich das gleiche Problem, das jemand anderes veröffentlicht hat, aber ohne Lösung (http://social.msdn.microsoft.com/forums/en/winforms/thread/95aefae4-45d8-4ac5-a8f2-6e2142dfb631).

War es hilfreich?

Lösung

Ordnungsgemäße Offenlegung: Ich arbeite mit Hila zusammen, also konnte ich den Code sehen. Der Grund für das unterschiedliche Verhalten war die A -Eigenschaft der Kontrolle, die als Autoscalemode bezeichnet wird. In der Basisklasse der Kontrolle war der Wert dieser Eigenschaft autoscalemode.font. Da alle unsere F & E -Maschinen mit den gleichen Einstellungen (Englisch) ausgeführt werden, haben sie sich richtig verhalten und der Fehler ist dort nicht stattgefunden. Das Wechsel zu einer japanischen Maschine bedeutete verschiedene Schriftstellungen von denen auf den englischen Maschinen. Dies verursachte die Mühe. Deshalb haben wir den Wert der Autoscalemode -Eigenschaft auf keine geändert und das Problem gelöst. Fazit: Achten Sie auf die Eigenschaft Autoscalemode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top