質問

XP English MachineとXP Japanay Machineで同じUIコードを実行しています。何らかの理由で、動作はこれら2つのマシン間で異なります。

日本のマシンでは、Onresizeイベントが初期化のコンポーネント呼び出し中にトリガーされています(Resumelayout関数から)。英語のマシンではそうではありません。

私が定義した私的変数の値を変更することを延期するオーバーライド方法があります。コンポーネントが完全にロードされていないため(CTORはまだ実行されています)、これらの変数はnullであり、例外が得られます。

変数がnullかどうかを確認してコードを修正できますが、なぜそれがそもそも呼び出されているのか、なぜこのマシンで発生するのかを理解したいと思います。

ネット上での検索中に、他の誰かが投稿したのと同じ問題が発見されましたが、解決策はありませんでした(http://social.msdn.microsoft.com/forums/en/winforms/thread/95aefae4-45d8-4ac5-a8f2-6e2142dfb631).

役に立ちましたか?

解決

適切な開示: 私はHilaと協力しているので、コードを見ることができました。異なる動作の理由は、AutoscaleModeと呼ばれるコントロールのAプロパティによるものでした。コントロールの基本クラスでは、このプロパティの値はautoscalemode.fontでした。すべてのR&Dマシンは同じ設定(英語)で実行されているため、適切に動作し、バグはそこで発生しませんでした。日本のマシンに変更すると、英語のマシンとは異なるフォント設定がありました。これはトラブルを引き起こしました。そのため、AutoscaleModeプロパティの価値をNONEに変更し、問題を解決しました。 結論: :AutoscaleModeプロパティに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top