Foxtable(狐表)用户栏目专家坐堂 → [求助] 用目录操控表的增、改、删 哪里出问题了。


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

主题:[求助] 用目录操控表的增、改、删 哪里出问题了。

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


加好友 发短信
等级:童狐 帖子:261 积分:2189 威望:0 精华:0 注册:2015/5/15 14:51:00
[求助] 用目录操控表的增、改、删 哪里出问题了。  发帖心情 Post By:2022/8/26 16:06:00 [只看该作者]

   第一步:  菜单右键命令:  这一块运行正常。

    Case "增加"
        Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
        Dim nd As WinForm.TreeNode = tr.SelectedNode
        Dim id As Integer = nd.index
        CurrentTable.AddNew
        
        If nd.ParentNode Is Nothing Then
            nd = tr.Nodes.add("新节点")
            tr.SelectedNode = nd
            CurrentTable.Current ("笔记分类") = nd.name
        Else
            nd = nd.ParentNode.Nodes.add("新节点")
            tr.SelectedNode = nd
            tr.Select 
            tr.BeginEdit
            Select Case nd.Level
                Case 1
                    CurrentTable.Current ("笔记分类") = nd.ParentNode.name
                    CurrentTable.Current ("笔记子项") = nd.name 
                Case 2
                    CurrentTable.Current ("笔记分类") = nd.ParentNode.ParentNode.name
                    CurrentTable.Current ("笔记子项") = nd.ParentNode.name
                    CurrentTable.Current ("子项实例") = nd.name
            End Select
        End If
        
        tr.BuildTree("学习笔记", "笔记分类|笔记子项|子项实例")
        tr.Nodes.Insert("显示所有行", 0)
        
        For Each nd1 As WinForm.TreeNode In tr.AllNodes
            If nd1.name = "新节点" Then
                tr.SelectedNode = nd1
                nd1.Expand
                tr.Select 
                tr.BeginEdit
            End If
        Next

第二步:目录树,aftereditnode事件  总是目录节点改名后,表字段不能同步更改。

e.Node.Name = e.Node.Text

If CurrentTable.Current.Locked = True Then
    MessageBox.Show ("已锁定,禁止编辑!")
    Return
End If 
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim dr As DataRow = e.Node.DataRow

If e.Node.ParentNode Is Nothing Then
    tr.SelectedNode = e.Node
    dr("笔记分类") = e.Node.Text
Else
    If e.Node.Level = 1 Then
        tr.SelectedNode = e.Node
        dr("笔记分类") = e.Node.ParentNode.Text
        dr("笔记子项") = e.Node.Text
    ElseIf e.Node.Level = 2 Then
        dr("笔记分类") = e.Node.ParentNode.ParentNode.Text
        dr("笔记子项") = e.Node.ParentNode.Text
        dr("子项实例") = e.NewText 
    End If
End If
















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


加好友 发短信
等级:超级版主 帖子:106716 积分:542775 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/26 16:25:00 [只看该作者]

调试

e.Node.Name = e.Node.Text

If CurrentTable.Current.Locked = True Then
    MessageBox.Show ("已锁定,禁止编辑!")
    Return
End If 
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim dr As DataRow = e.Node.DataRow
msgbox(e.Node.ParentNode Is Nothing)
If e.Node.ParentNode Is Nothing Then
    tr.SelectedNode = e.Node
msgbox("1笔记分类=" & dr("笔记分类"))
    dr("笔记分类") = e.Node.Text
msgbox("2笔记分类=" & dr("笔记分类"))
Else
msgbox("e.Node.Level=" & e.Node.Level)
    If e.Node.Level = 1 Then
        tr.SelectedNode = e.Node
msgbox("3笔记分类=" & dr("笔记分类"))
        dr("笔记分类") = e.Node.ParentNode.Text
msgbox("4笔记分类=" & dr("笔记分类"))
        dr("笔记子项") = e.Node.Text
msgbox("5笔记子项=" & dr("笔记子项"))
    ElseIf e.Node.Level = 2 Then
msgbox("e.Node.ParentNode.ParentNode.Text=" & e.Node.ParentNode.ParentNode.Text)
        dr("笔记分类") = e.Node.ParentNode.ParentNode.Text
msgbox("7笔记分类=" & dr("笔记分类"))
msgbox("e.Node.ParentNode.Text=" & e.Node.ParentNode.Text)
        dr("笔记子项") = e.Node.ParentNode.Text
msgbox("8笔记分类=" & dr("笔记子项"))
msgbox("e.NewText=" & e.NewText)
        dr("子项实例") = e.NewText 
msgbox("9笔记分类=" & dr("子项实例"))
    End If
End If

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


加好友 发短信
等级:童狐 帖子:261 积分:2189 威望:0 精华:0 注册:2015/5/15 14:51:00
  发帖心情 Post By:2022/8/26 17:06:00 [只看该作者]

谢谢,找到问题了
 dr("笔记子项") = e.Node.Text  应改为:
dr("笔记子项") = e.NewText 

 回到顶部