Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

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

1楼
hanxuntx 发表于:2011/12/15 17:10:00

请教,如题。

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

2楼
狐狸爸爸 发表于:2011/12/15 17:21:00

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

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

 

3楼
hanxuntx 发表于:2011/12/15 17:32:00

狐爸能给段SaveToString的代码吧。

参考下。

想偷点懒。

4楼
狐狸爸爸 发表于: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编辑过]
5楼
hanxuntx 发表于:2011/12/15 17:50:00

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

谢谢狐爸

6楼
hanxuntx 发表于:2011/12/15 18:00:00

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

 

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

 

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

 

[此贴子已经被作者于2011-12-15 18:01:52编辑过]
7楼
hanxuntx 发表于:2011/12/16 10:38:00

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

这个再给写个例子吧。

 

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

8楼
狐狸爸爸 发表于:2011/12/16 10:49:00

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

你的具体任务是什么?

9楼
hanxuntx 发表于:2011/12/16 11:07:00

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

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

        能用LoadFromString生成。

[此贴子已经被作者于2011-12-16 11:27:23编辑过]
10楼
狐狸爸爸 发表于: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 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .06445 s, 2 queries.