Почему свойство Visible неправильно обновляется в UserControl?

Иногда свойство Visible моего UserControl обновляется неправильно. Это происходит во время загрузки моего приложения, в OnFontChanged, запускается из InitializeComponent, вероятно, потому что некоторые другие вещи еще не были настроены. Я просто не могу узнать что.

vScrollBar является UserControl и находится внутри другого UserControl. По-видимому, это происходит только при попытке установить значение true.vScrollBar уже создан дескриптор, поскольку часы на IsHandleCreated говорят, что это правда.

Ответы на вопрос(2)

нта управления, а не «предполагаемое» состояние. Который всегда будет ложным в методе InitializeComponent (), форма или элемент управления пока не видны допосле событие Load запускается. Также будет false, если контейнерный элемент управления не виден.

 Gabriel23 сент. 2010 г., 18:52
"Очень познавательно", thx (:
 magnattic11 авг. 2012 г., 21:20
Вау, действительно легко вносить ошибки таким образом. Я установил Visible и поместил его в if () в следующей строке, думая, что это будет значение, которое я только что установил. Злые вещи!
 supercat07 дек. 2012 г., 20:16
@atticae: Тот факт, что Microsoft сделала что-то определенное в .net, не всегда означает, что это хорошая идея. Казалось бы, Microsoft не могла решить, иметь ли свойство, которое говорит, можно ли что-то увидеть или что-то позволяет себя увидеть; на самом деле, свойства были бы полезны, если бы им дали разные имена, но по какой-то причине Microsoft решила иметь свойство под названиемVisible чей получатель возвращает первое, а чей установщик контролирует второе. Некоторые компьютеры 1970-х годов имели такие проблемы в своей конструкции, но люди никогда не учатся ...
Решение Вопроса

если Форма не загружена. Попробуйте установить его в событии OnLoad формы.

 Gabriel23 сент. 2010 г., 19:04
Актуальное практическое решение, спасибо!

Ваш ответ на вопрос