Понимание элемента управления своего родителя обычно плохая идея. Однако есть специальный метод для определения изменения родительского BackColor, так что все в порядке. BackColor - это свойство ambient , если оно не назначено явно, имеет то же значение, что и родительский BackColor. Так что воспользуйтесь этим:
using System;
using System.Windows.Forms;
class MyTreeView : TreeView {
protected override void OnParentChanged(EventArgs e) {
if (this.Parent != null) this.BackColor = this.Parent.BackColor;
base.OnParentChanged(e);
}
protected override void OnParentBackColorChanged(EventArgs e) {
this.BackColor = this.Parent.BackColor;
base.OnParentBackColorChanged(e);
}
}