老师,我准备用AfterCheckNode来实现不连续的加载数据,并且准备让用户自己设定加载条件,但现在有个问题,我不知用户会设置多少层级,下面一个按钮的代码用于根据后台数据生成加载树,红字部分我会改用变量Dim trv_对外采购 As WinForm.TreeView = e.Form.Controls("TreeView_对外采购")
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.C ommandText = "S ELECT DISTINCT 类别,我方简称 From {合同} Where 属性 = '对外' And 类型 = '采购'" 'DISTINCT关键词,返回的内容才是不重复的
dt = cmd.ExecuteReader()
trv_对外采购.BuildTree(dt,"类别|我方简称")
trv_对外采购.Nodes.Insert("显示所有行",0)
下面的代码是帮助文件中的,这个同步选择状态直接可以拿来用了,由于现在不知层级,但每个层级的内容是可以读取变量知道, 也就参照不了帮助文件中的例子了,能以此为基本帮我写下代码吗?把加载的代码加进去,或帮我找个例子,我自己学习下
For Each nd As WinForm.TreeNode In e.node.AllNodes '同步子节点选中状态
If nd.FullPath.StartsWith(e.node.FullPath) Then
nd.Checked = e.node.Checked
End If
Next
If e.node.Checked = False Then '如果本次操作为清除节点选中状态
Dim pd As WinForm.TreeNode = e.node.ParentNode '获取父节点
Do While pd IsNot Nothing
pd.Checked = False '清除父节点选中状态
pd = pd.ParentNode '继续获取上一层级的父节点
Loop
End If
另外,系统自带的加载树我能直接拿到窗口中用吗,如果行,就省事了
[此贴子已经被作者于2020/4/20 22:54:23编辑过]