以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  切换不同页签后改变目录树节点背景颜色  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185468)

--  作者:cd_tdh
--  发布时间:2023/2/24 13:01:00
--  切换不同页签后改变目录树节点背景颜色
老师,我切换不同页签后,改变目录树背景颜色无效,请老师看看哪儿问题,代码如下:
\'选择不同页签后,自动跳转到对应的导航
Dim pag As WinForm.TabControl = e.Form.Controls("tabControl1")
Dim st As String = pag.S  electedPage.Name
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each n As WinForm.TreeNode In tr.AllNodes
    If n.Text.IndexOf (st) >= 0 Then
        tr.S  electedNode = tr.Nodes(n.ParentNode.Index).Nodes(n.Index)
        n.I conF ile = "2.png"
        n.ParentNode.I  conF ile = "3.png"
        n.Backcolor = Color.FromARGB(0, 120, 215)
    Else
        n.I  c
        n.Backcolor = Color.FromARGB( 230, 230, 230)
    End If
Next


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2023/2/24 13:33:46编辑过]

--  作者:有点蓝
--  发布时间:2023/2/24 13:32:00
--  
tr.S  electedNode = tr.Nodes(n.ParentNode.Index).Nodes(n.Index)
改为
tr.S  electedNode = n

--  作者:cd_tdh
--  发布时间:2023/2/24 13:36:00
--  
改了n背景色还是无效,焦点在目录书上没有问题,是不是因为交点不在目录树上,没法指定背景色呢,
[此贴子已经被作者于2023/2/24 13:42:37编辑过]

--  作者:有点蓝
--  发布时间:2023/2/24 13:44:00
--  
目录树是这样的,没有焦点才能显示自定义背景色,选中节点的背景色无法更改的。
--  作者:cd_tdh
--  发布时间:2023/2/24 13:47:00
--  
那指定背景应该是没问题的啊
这样写还报错:
tr.S  electedNode = n.Nodes(n.ParentNode.Index).Nodes(n.Index)


图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看
示例文件:

以下内容是专门发给有点蓝浏览




[此贴子已经被作者于2023/2/24 13:51:49编辑过]

--  作者:有点蓝
--  发布时间:2023/2/24 13:52:00
--  
完全多此一举,直接tr.S  electedNode = n就行了
--  作者:cd_tdh
--  发布时间:2023/2/24 13:52:00
--  
也不行,还是错行的,我把示例文件传楼上了,请老师看看
资产管理和合同管理做了窗口可以测试
[此贴子已经被作者于2023/2/24 13:55:28编辑过]

--  作者:有点蓝
--  发布时间:2023/2/24 14:06:00
--  
测试没有问题啊,怎么测试,什么地方有问题?
--  作者:cd_tdh
--  发布时间:2023/2/24 14:15:00
--  
代码:
\'选择不同页签后,自动跳转到对应的导航
Dim pag As WinForm.TabControl = e.Form.Controls("tabControl1")
Dim st As String = pag.S  elect edPage.Name
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each n As WinForm.TreeNode In tr.AllNodes
    If n.Text.IndexOf (st) >= 0 Then
        tr.S  electedNode = n \'tr.Nodes(n.ParentNode.Index).Nodes(n.Index)
        MessageBox.Show("父节点" & n.ParentNode.Index)
        MessageBox.Show("子节点:"& n.Index)
        n.I conF ile = "2.png"
        n.P arent Node.I conF ile = "3.png"
        n.ForeColor = Color.Red \'FromARGB(0, 120, 215)
        n.Backcolor = Color.FromARGB(0, 120, 215)
    Else
        n.I conF ile = "1.png"
    End If
Next
测试顺序:
先打开资产统计管理,在打开屋内物品管理,绘制了资产统计管理,正确的应该绘制屋内物品管理才对啊:

图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看
在页签上切换回 资产统计管理,结果把屋内物品管理背景绘制了,正确的应该绘制资产统计管理的目录树才对啊。

图片点击可在新窗口打开查看此主题相关图片如下:223.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2023/2/24 14:16:24编辑过]

--  作者:有点蓝
--  发布时间:2023/2/24 14:31:00
--  
我这边测试正常,白色背景,红色图片,说明就是选中状态

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看