当TreeViews失去焦点的时候选择项继续保持高亮

先要设置HideSelection=false,设置完成后这时候已经能保持高亮了,但是可以看到选项灰蒙蒙的并不是想要的,这时候需要手动重绘。

设置DrawMode=OwnerDrawText,然后增加DrawNode事件,在DrawNode事件:

private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
        {
            e.Graphics.FillRectangle(Brushes.White, e.Node.Bounds);
            if (e.State == TreeNodeStates.Selected)//选中的失去焦点的节点
            {
                e.Graphics.FillRectangle(Brushes.CornflowerBlue, new Rectangle(e.Node.Bounds.Left - 1, e.Node.Bounds.Top, e.Node.Bounds.Width +2, e.Node.Bounds.Height));//背景         
                e.Graphics.DrawString(e.Node.Text, treeView1.Font, Brushes.White, e.Bounds);//白字          
            }
            else
            {
                e.DrawDefault = true;
            }
        }

找了半天不知道原来默认的蓝色是什么名字,找了一个最相近的CornflowerBlue。

posted @ 2016-06-29 09:58  小书丶  阅读(307)  评论(0)    收藏  举报