Foxtable(狐表)用户栏目专家坐堂 → [求助]能否限制目录树新建节点


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

主题:[求助]能否限制目录树新建节点

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


加好友 发短信
等级:五尾狐 帖子:1139 积分:11245 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]能否限制目录树新建节点  发帖心情 Post By:2019/10/28 17:00:00 [只看该作者]

老师好!

如下图,我拖拽改变二级目录树节点的顺序,一不小心就拖拽产生一个新的一级节点。

能不能限制根节点只能存在一个节点?

 


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

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


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 17:04:00 [只看该作者]

拖拽怎么做的?

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


加好友 发短信
等级:五尾狐 帖子:1139 积分:11245 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/10/28 19:11:00 [只看该作者]

逛逛老师的原贴:目录树内节点拖拽的练习
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=39670&replyID=247106&skin=1

下面是我改了一下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树拖拽测试.foxdb




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


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 20:22:00 [只看该作者]

trDragDrop函数

Dim sender As System.object = Args(0)
Dim e As System.Windows.Forms.DragEventArgs = Args(1)
If Vars("来源树") = "" Then
    Exit Function
End If 
If Vars("去向树") = ""  Then
    Exit Function
End If 
Dim myTree_in As WinForm.TreeView = Forms("窗口").Controls(Vars("来源树")) '定义来源目录树
Dim myTree_out As WinForm.TreeView = Forms("窗口").Controls(Vars("去向树")) '定义去向目录树
Dim vbTree_in As System.Windows.Forms.TreeView = myTree_in.BaseControl '取后台对象
Dim vbTree_out As System.Windows.Forms.TreeView = myTree_out.BaseControl '取后台对象
Dim NodData  As WinForm.TreeNode = e.Data.GetData("Foxtable.WinForm.TreeNode") '取数据
If myTree_in.SelectedNode Is Nothing Then
    Exit Function
End If
Dim vbNod As System.Windows.Forms.TreeNode = vbTree_in.SelectedNode '没办法,只能绕弯走
Dim NewvbNod As System.Windows.Forms.TreeNode = vbNod.Clone()   '添加下级节点
Dim pt =  sender.PointToClient(new Point(e.X, e.Y))  '取当前坐标
Dim NodNet As System.Windows.Forms.TreeNode = vbTree_out.GetNodeAt(pt) '取坐标所在位置的节点
If NodNet Is Nothing   Then   
    'vbTree_out.nodes.Add(NewvbNod)
Else If NodNet.Level = 0 Then
    'vbTree_out.nodes.Add(NewvbNod)
Else If NodNet.Parent.name = NodData.name Then
    Exit Function
Else
    '同级移动
    NodNet.Parent.Nodes.Insert(NodNet.Index, NewvbNod)    
    '添加到下级
    'NodNet.Nodes.Insert(NodNet.nodes.count, NewvbNod)
myTree_in.Nodes.Remove(NodData)
vbTree_out.SelectedNode = NewvbNod
End If

 回到顶部