this.Tree.SelectedNode = this.Tree.GetNodeAt(p);
this.Tree.SelectedNode.BackColor = 颜色;这两行语句能够改变选中节点的背景颜色,
但是不能禁掉系统选中节点时的默认深蓝色。

解决方案 »

  1.   

    把treeview的DrawMode属性设置成OwnerDrawText,然后在DrawNode事件里自己画:
            private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
            {
                if ((e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected)
                {
                    e.Graphics.FillRectangle(new SolidBrush(Color.Red), e.Bounds);
                    e.Graphics.DrawString(e.Node.Text,treeView1.Font,new SolidBrush(Color.White),e.Bounds.Location);
                }
                else
                {
                    e.DrawDefault = true;
                }
            }
        }