Форма. Определение запуска во время инициализации ()

StackOverflow https://stackoverflow.com/questions/2228316

  •  19-09-2019
  •  | 
  •  

Вопрос

У меня такой же код пользовательского интерфейса, работающий на моей английской машине XP и на японской машине XP. По какой -то причине - поведение отличается между этими двумя машинами:

На японской машине событие OnResize запускается во время вызова инициализации (я думаю, что из функции Resumelayout). На английской машине это не так.

У меня есть метод переопределения, чтобы использовать эти значения изменения моих личных переменных, которые я определил. Поскольку компонент не был полностью загружен (CTOR все еще работает), эти переменные являются нулевыми, и я получаю исключение.

Я могу исправить код, проверив, является ли переменная нулевая или нет, но я хотел бы понять, почему ее вызывают в первую очередь и почему это происходит только на этой машине.

Во время поиска в сети я нашел ту же проблему, что и кто -то другой, но без решения (http://social.msdn.microsoft.com/forums/en/winforms/thread/95aefae4-45d8-4ac5-a8f2-6e2142dfb631).

Это было полезно?

Решение

Правильное раскрытие: Я работаю с HILA, поэтому я смог увидеть код. Причиной другого поведения была из -за свойства управления, называемого AutoscaleMode. В базовом классе управления значение этого свойства было AutoscaleMode.font. Поскольку все наши исследования и разработки работают с теми же настройками (английский), они вели должным образом, а ошибка там не произошла. Переход на японскую машину означала различные настройки шрифта от настройки на английских машинах. Это вызвало неприятности. Таким образом, мы изменили значение свойства AutoscaleMode на NONE, и оно решило проблему. Вывод: Остерегайтесь свойства AutoscaleMode.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top