Foxtable(狐表)用户栏目专家坐堂 → [原创]重命名树


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

主题:[原创]重命名树

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/4 8:56:00 [显示全部帖子]

树来自哪里? 是来自于一个文件吧,如果这样,再保存一下这个树就行啊:

http://help.foxtable.com/topics/1974.htm

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/4 9:04:00 [显示全部帖子]

来自于表就保存在表即可啊。

你做个简单的例子传上来,否则我无法理解。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/4 9:30:00 [显示全部帖子]

我写的代码:

Dim tr As WinForm.TreeView = Forms("定位树").Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
Dim Vals() As String = e.Form.Controls("TextBox1").text.split("|")
For i As Integer = Vals.Length -1 To 0 Step - 1
    nd.text = vals(i)
    nd = nd.ParentNode
    If nd Is Nothing Then
        Exit For
    End If
Next
Tables("商品").Current.Save()

 

 

你之前的代码毫无逻辑可言,你不会保存是正常的,但是逻辑完全混乱,你看看你的代码:

 

Dim tr As WinForm.TreeView = Forms("定位树").Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
Dim td As winform.treenode
Dim id As Integer = nd.index
td = tr.nodes(id)
td.Text = Forms("修改树").Controls("TextBox1").text
Tables("商品").Current.Save()
tr.SelectedNode = nd '选择新插入的节点
tr.Select '选择目录树

 

第二行执行,nd是选定节点,你要改名的就是这个选定节点,你却绕这么大一个圈子找了一个完全不像干的节点td来改名。
而且不要以为td和nd的index属性相同,就是同一个节点,index表示节点在父节点集合中的位置,以下面这个图片为例:家电产品、电脑配件,服务器三个节点,他们的index属性都是2,却是三个完全不同的节点。

 

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

 

编程是严谨的,建议你从头到尾,细看两次帮助,否则你花的时间更多。

不要以为有个完整的例子就能帮到你,因为没有一个例子能将所有基本知识、所有的可能性、所有的控件涵盖进去。

 

我从不认为编程是一个有很高技术含量的工作,只是一项蓝领工作而已,我一直觉得,基本原理通了,其他都是“小菜”而已。

我接触过大量的客户,基本上越想快速上手的人越上不了手,最终花的时间更多。

[此贴子已经被作者于2011-6-4 9:33:38编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/4 9:56:00 [显示全部帖子]

不行,是因为手误,改一个字符就行了:

 

Dim tr As WinForm.TreeView = Forms("定位树").Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
Dim Vals() As String = e.Form.Controls("TextBox1").text.split("\")
For i As Integer = Vals.Length -1 To 0 Step - 1
    nd.text = vals(i)
    nd = nd.ParentNode
    If nd Is Nothing Then
        Exit For
    End If
Next
Tables("商品").Current.Save()

 

Split在编程基础讲述的,参考:

http://help.foxtable.com/topics/1421.htm

http://help.foxtable.com/topics/0245.htm

 

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/4 10:26:00 [显示全部帖子]

写个代码判断,只要vals.length等于node的level,就说明用户没有乱改。


 回到顶部