Foxtable(狐表)用户栏目专家坐堂 → 请教SaveToString能不能只保存复选框选中的节点?


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

主题:请教SaveToString能不能只保存复选框选中的节点?

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
请教SaveToString能不能只保存复选框选中的节点?  发帖心情 Post By:2011/12/15 17:10:00 [只看该作者]

请教,如题。

如果不能要把选中的节点保存为一个字符串该怎么做?


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


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

这个不可以的,只能自己遍历合成字符串了:

http://www.foxtable.com/help/topics/2302.htm

 


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2011/12/15 17:32:00 [只看该作者]

狐爸能给段SaveToString的代码吧。

参考下。

想偷点懒。


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


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

呵呵,foxtable的代码不适合你的,自己定义一套规则,逐个遍历合成就行。

这是foxtable保存目录树节点的函数,使用的是递归,而且牵涉很广,无法直接用的:

 

  Friend Shared Sub GetSimpleNodesSettingString(ByVal Nodes As Windows.Forms.TreeNodeCollection, ByRef Str1 As String)
        Dim Node As Windows.Forms.TreeNode
        For Each Node In Nodes
            Dim np As New SimpleNodeProperty(CType(Node, CustomTreeNode))
            If Str1 <> "" Then
                Str1 = Str1 & ControlChars.FormFeed
            End If
            Str1 = Str1 & SaveObjectPropertyToString(np, False, ControlChars.Tab).Replace(ControlChars.FormFeed, "")
            If Node.Nodes.Count > 0 Then
                Str1 = Str1 & ControlChars.FormFeed & "Inner"
                GetSimpleNodesSettingString(Node.Nodes, Str1)
                Str1 = Str1 & ControlChars.FormFeed & "Outer"
            End If
        Next
    End Sub

[此贴子已经被作者于2011-12-15 17:43:24编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2011/12/15 17:50:00 [只看该作者]

太难了图片点击可在新窗口打开查看

谢谢狐爸


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2011/12/15 18:00:00 [只看该作者]

狐爸能否考虑加上这个功能呢。

 

这样很多时候下拉目录树可以直接生成了。

 

自己编码的话,保存的时候要写个函数,生成又要写个函数了。

 

[此贴子已经被作者于2011-12-15 18:01:52编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2011/12/16 10:38:00 [只看该作者]

狐爸上次你给了生成目录树的递归的例子。

这个再给写个例子吧。

 

这个还是比较有难度,做不来啊


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


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

我不明白你具体的意思的,因为如果只是保存为字符串,不是很简单的一件事情吗?

你的具体任务是什么?


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2011/12/16 11:07:00 [只看该作者]

需求:把目录树选中的节点,按照目录树的结构保存下来。

        并且符合狐表的字符串规范。

        能用LoadFromString生成。

[此贴子已经被作者于2011-12-16 11:27:23编辑过]

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


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

我的建议,保存为两个文件,简单高效。

 

保存按钮的代码:

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim s As String
trv.Save("c:\data\mytree.tre")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked Then
        If  s > "" Then
            s = s & vbtab
        End If
        s = s & nd.FullPath
    End If
Next
filesys.WriteAllText("c:\data\mytree.chk",s,False)

 

加载按钮的代码:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nms As new List(of String)
trv.Nodes.Clear
trv.Load("c:\data\mytree.tre")
nms.AddRange(filesys.ReadAllText("c:\data\mytree.chk").Split(vbtab))
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nms.Contains(nd.FullPath) Then
        nd.Checked = True
    End If
Next

 

 

 

 


 回到顶部
总数 12 1 2 下一页