これを防ぐことができるようには見えません。TreeNode.BackColorセッターのコードを確認しました。
[SRDescription("TreeNodeBackColorDescr"), SRCategory("CatAppearance")]
public Color BackColor
{
get
{
if (this.propBag == null)
{
return Color.Empty;
}
return this.propBag.BackColor;
}
set
{
Color backColor = this.BackColor;
if (value.IsEmpty)
{
if (this.propBag != null)
{
this.propBag.BackColor = Color.Empty;
this.RemovePropBagIfEmpty();
}
if (!backColor.IsEmpty)
{
this.InvalidateHostTree();
}
}
else
{
if (this.propBag == null)
{
this.propBag = new OwnerDrawPropertyBag();
}
this.propBag.BackColor = value;
if (!value.Equals(backColor))
{
this.InvalidateHostTree();
}
}
}
}
BackColorが変更されるたびに、ノードを含むツリーに無効化が強制されます。ここでも、InvalidateHostTree関数を見ると、更新の発生を停止するために設定できるフラグはありません。