Вот цитата из книги Криса Селлса Программирование Windows Forms на C # (стр. 259):
Свойство ambient - это свойство, которое, если оно не установлено в элементе управления, будет «унаследовано» от контейнера. Из всех стандартных свойств, предоставляемых базовым классом Control
, только четыре являются внешними: BackColor
, ForeColor
, Font
и Cursor
. [...] (Акцент добавлен мной.)
Может быть, это поможет избежать зависимости от свойства Control.Parent
...?
PS: На самом деле, некоторые из других ответов, вероятно, более полезны, чем мой: я начинаю думать, что, возможно, метод OnHandleCreated
- просто неправильное место для запроса свойства родителя элемента управления. , OnParentChanged
или даже OnPaint
, вероятно, лучшие места для этого.