以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]目录树与表 交互选择的问题!!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27670)

--  作者:gaoyong30000
--  发布时间:2013/1/7 15:24:00
--  [求助]目录树与表 交互选择的问题!!
 界面如下

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


目录树afterselectnode里代码如下

If e.Node.text <> "全部" Then
    Dim dr As DataRow
    Dim s As String = e.Node.Text
    Dim i As Integer = s.IndexOf(" ")
    s = s.SubString(0,i)
   
    dr = DataTables("综合部物品分类设置_综合部物品分类设置Table1").Find("分类编号 = \'" & s & "\'")
    Dim wz As Integer = Tables("综合部物品分类设置_综合部物品分类设置Table1").FindRow(dr)
    If wz >= 0 Then
        Tables("综合部物品分类设置_综合部物品分类设置Table1").Position = wz
    End If
End If

功能为:单击左边目录树 右边的table就能自动定位到相应的行


但是反过来我就不会了  就是在table中选择不同的行  目录树也到对应到相应节点,请教怎么弄?(PS.还有个功能就是:如果table当前选中的行是目录树中未展开的,则目录树保持当前展开状态,并展开选中行的节点)

[此贴子已经被作者于2013-1-7 15:28:20编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/7 15:44:00
--  
 这样找虽然可以,不过建议优化一下。如果是自动生成的树,节点都有一个datarow属性,可以简化定位。

 对于从数据表找节点,没有简单的方法。只能是遍历所有的节点,然后去匹配。如果树是自己生成的,也可以优化一下。

 for each n as object in tv.allNones

 next
[此贴子已经被作者于2013-1-7 15:45:14编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/7 15:59:00
--  
 终于找到一个例子了,你可以参考一下。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:nodeselect节点改变底色.table



--  作者:gaoyong30000
--  发布时间:2013/1/7 17:33:00
--  
 又遇到一个问题

我把代码放在 sql型table的 positionchanged里的  结果出现这个错误

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




If Tables("综合部物品分类设置_综合部物品分类设置table1").Focused Then
    StatusBar.Message1 = "第" & (e.Table.Position + 1) & "行,共" & e.Table.Rows.Count & "行"
    Dim trv As WinForm.TreeView = forms("ERP界面").Controls("综合部物品分类设置TreeView1")
    Dim t As Integer = trv.SelectedNode.Text.LastIndexOf(" ")

    If mytree Is Nothing Then Return

    Dim tv As WinForm.TreeView = mytree
    For Each node As WinForm.TreeNode In tv.AllNodes
        If e.Table.Rows(e.Table.Position)("分类编号") = node.text.SubString(0,t)
            tv.SelectedNode = node
            Exit For
        End If
    Next
End If

也就是 这个forms("ERP界面").Controls("综合部物品分类设置TreeView1")  找不到

但是我在命令窗口里 进行测试 forms("综合部物品分类设置").Controls("综合部物品分类设置TreeView1").Height = 0

没有出现错误  证明可以找到的 奇怪了
[此贴子已经被作者于2013-1-7 17:34:28编辑过]

--  作者:gaoyong30000
--  发布时间:2013/1/8 10:21:00
--  
做个例子还是??
--  作者:lin_hailun
--  发布时间:2013/1/8 10:45:00
--  
 直接发例子吧,比较直观些
--  作者:gaoyong30000
--  发布时间:2013/1/8 15:32:00
--  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树与表交互1.rar



麻烦了
[此贴子已经被作者于2013-1-8 15:32:35编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/8 16:03:00
--  
 大概这样。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树与表交互.table



--  作者:gaoyong30000
--  发布时间:2013/1/8 16:18:00
--  
 多谢您啦~~~~ 狐神!图片点击可在新窗口打开查看   学了一招 Split(" ")(0)

--  作者:花开的声音
--  发布时间:2014/5/19 12:54:00
--  
学习了。