Foxtable(狐表)用户栏目专家坐堂 → 关于treeview的难题


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

主题:关于treeview的难题

帅哥哟,离线,有人找我吗?
唐尸三摆手
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/6 17:25:00 [只看该作者]


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

 

 

这个错误是什么意思?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/6 17:39:00 [只看该作者]

字典中没有指定的键值

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/12/6 20:10:00 [只看该作者]

不知这样可否?

 

If dic.ContainsKey(dr("第二列")) = false Then
     dic.Add(dr("第二列"),tnd)

End If

[此贴子已经被作者于2010-12-6 20:11:32编辑过]

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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2010/12/6 20:28:00 [只看该作者]

建议在目录树中也增加相应的代码,新生成的数据,追加到文件中,这个案例就完整了。对了,如果目录树中要删除,会不会很麻烦
[此贴子已经被作者于2010-12-6 22:01:37编辑过]

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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2010/12/6 20:32:00 [只看该作者]

之前我也做了一个类似的案例,http://www.foxtable.com/dispbbs.asp?BoardID=2&ID=8491&replyID=&skin=1 ,大家可以下载参考,参考


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/6 21:47:00 [只看该作者]

以下是引用程兴刚在2010-12-6 20:10:00的发言:

不知这样可否?

 

这样才对,可避免数据表内容输入不规范导致出错:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim lst1 As List(of String) = DataTables("表A").GetUniqueValues("","第一列")
Dim lst2 As List(of String) = DataTables("表A").GetUniqueValues("","第二列")
Dim dic As New Dictionary(Of String, WinForm.TreeNode)
Dim tnd As WinForm.TreeNode
trv.Nodes.Clear()
For Each Val As String In Lst1
    If lst2.Contains(val) = False Then
        tnd = trv.Nodes.Add(val,val)
        dic.Add(val,tnd)
    End If
Next

For Each dr As DataRow In DataTables("表A").Select("", "第一列, 第二列")

     If dic.ContainsKey(dr("第一列")) Then
         tnd = dic(dr("第一列")).Nodes.Add(dr("第二列"), dr("第二列"))
         If dic.ContainsKey(dr("第二列")) Then
             dic.Remove(dr("第二列"))
         End If
         dic.Add(dr("第二列"),tnd)

     End If
Next


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/12/6 21:51:00 [只看该作者]

哦,谢谢,我就看了粗体的那一段!

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


加好友 发短信
等级:五尾狐 帖子:1034 积分:7402 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2010/12/6 22:08:00 [只看该作者]

我的办法要笨些,就是再增加一列,计算这一列的值。

 

再用多列数据生成treeview。

 

代码我就不写了,很简单。

 

这个用于生成treeview的表,可以用临时表来做,项目打开后或窗口打开前更新。

 

也是不错的。


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/12/7 10:29:00 [只看该作者]

不知我的表有什么问题,只是出来了第二级


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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/7 10:30:00 [只看该作者]

我贴出来的例子有任意多级。

检查自己输入的数据是否规范。


 回到顶部
总数 48 上一页 1 2 3 4 5 下一页