以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何高亮显示目录树节点  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59997)

--  作者:HappyFt
--  发布时间:2014/11/16 10:18:00
--  如何高亮显示目录树节点

就想实现当用代设置了某个节点是SelectedNode时就高亮显示,其他节点恢复默认值,换另一个节点时相同,如下代码:

 

For Each nd As winform.treenode In tr.allNodes
    nd.backColor = Color.White  \'恢复节点默认颜色
Next
For Each nd As winform.treenode In tr.Nodes
    If nd.Name = Mtbn Then
        \'---选中当前节点
        tr.SelectedNode = nd
        tr.SelectedNode.backColor = Color.LightSkyBlue
        Exit For  \'退出循环
    End If
Next

 

但执行后选中的节点还是默认的无颜色,是什么原因?还是有其他办法

 

谢谢!



--  作者:有点甜
--  发布时间:2014/11/16 10:27:00
--  

 当前节点的颜色和你设置的颜色冲突。

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As winform.treenode In tr.allNodes
    nd.backColor = Color.White  \'恢复节点默认颜色
Next
For Each nd As winform.treenode In tr.allNodes
    If nd.Name = Mtbn  Then
        \'---选中当前节点
        \'tr.SelectedNode = nd
        nd.backColor = Color.LightSkyBlue
        Exit For  \'退出循环
    End If
Next


--  作者:HappyFt
--  发布时间:2014/11/16 10:50:00
--  

原来是这样,除了这种每次都要先遍历取消再显示的方式还有没有更简单的方式?

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20141116-1.jpg
图片点击可在新窗口打开查看

另外系统选中节点时显示的那种蓝色是什么蓝?skyblue等怎么设置颜色都和它不一样。


--  作者:有点甜
--  发布时间:2014/11/16 11:03:00
--  

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As winform.treenode In tr.allNodes
    nd.backColor = Color.White  \'恢复节点默认颜色
    nd.ForeColor = Color.black  \'恢复节点默认颜色
Next
For Each nd As winform.treenode In tr.allNodes
    If nd.Name = Mtbn   Then
        \'---选中当前节点
        \'tr.SelectedNode = nd
        nd.backColor = Color.FromARGB(0.5, 49, 106, 197)
        nd.ForeColor = Color.White

        Exit For  \'退出循环
    End If
Next