Pregunta

Tengo el mismo código de UI ejecutándose en mi máquina XP English y en la máquina japonesa XP. Por alguna razón: el comportamiento es diferente entre esas dos máquinas:

En la máquina japonesa, el evento OnResize se está activando durante la llamada InitializeComponent (creo que desde la función de rean y la función). En la máquina inglesa no lo hace.

Tengo un método de anulación de información que cambia los valores de mis variables privadas que definí. Dado que el componente no estaba completamente cargado (el CTOR todavía se está ejecutando), esas variables son nulas y obtengo una excepción.

Puedo solucionar el código verificando si la variable es nula o no, pero me gustaría entender por qué se llama en primer lugar y por qué sucede solo en esta máquina.

Durante mi búsqueda sobre la red encontré el mismo problema que alguien más ha publicado, pero sin solución (http://social.msdn.microsoft.com/forums/en/winforms/thread/95aefae4-45d8-4ac5-a8f2-6e2142dfb631).

¿Fue útil?

Solución

Divulgación adecuada: Estoy trabajando con Hila, así que pude ver el código. La razón del comportamiento diferente se debió a la propiedad A del control llamado AutoScalemode. En la clase base del control, el valor de esta propiedad fue autoscalemode.font. Como todas nuestras máquinas de I + D se ejecutan con la misma configuración (inglés), se comportaron correctamente y el error no sucedió allí. Cambiar a una máquina japonesa significaba diferentes configuraciones de fuentes de las de las máquinas inglesas. Esto causó el problema. Por lo tanto, cambiamos el valor de la propiedad AutoScalemode a ninguno y resolvió el problema. Conclusión: Tenga cuidado con la propiedad AutoScalemode.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top