Foxtable(狐表)用户栏目专家坐堂 → 如何高亮显示目录树节点


  共有2592人关注过本帖树形打印复制链接

主题:如何高亮显示目录树节点

帅哥哟,离线,有人找我吗?
HappyFt
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17128 威望:0 精华:0 注册:2014/7/29 19:09:00
如何高亮显示目录树节点  发帖心情 Post By: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

 

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

 

谢谢!



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17128 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2014/11/16 10:50:00 [只看该作者]

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

 


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

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部