注册 登录
编程论坛 VB.NET论坛

TreeView节点重命名时的问题

zqmillet 发布于 2010-08-19 16:21, 1752 次点击
程序代码:
Private Sub FolderTreeView_AfterLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) Handles FolderTreeView.AfterLabelEdit

        Dim xmlDoc As XmlDocument = New XmlDocument()
        xmlDoc.Load(xmlPath)
        Dim xPath As String
        xPath = GetXPath(focusNode.FullPath.Replace("\", "/"))
        xPath = "/" & xPath

        Dim xmlNode As XmlNode = xmlDoc.SelectSingleNode(xPath)
        '以上定位XML中的节点的过程
        If HasChildNodeNamed(focusNode.Parent, e.Label) Then    '判断同目录下是否有同名文件夹
            MessageBox.Show("此目录已经包含名为""" & e.Label & """的文件夹", "警告")
            e.CancelEdit = True
        Else
            If e.Label = "" Then     '判断新的名字是否为空
                MessageBox.Show("目录名不能为空", "警告")
                e.CancelEdit = True
            Else
                If isFileNameRight(e.Label) Then       '判断时候符合命名规则
                    xmlNode.Attributes("Name").Value = e.Label.Trim()    '改写XML中的相关节点的属性,并去掉前后的空格
                    FolderTreeView.SelectedNode.Text = e.Label.Trim()    '修改被修改节点显示文本
                    xmlDoc.Save(xmlPath)         '保存XML文件
                Else         '不符合命名规则
                    MessageBox.Show("文件名不能包含任何以下字符:" & vbCrLf & "\ / : * ? """" < > |", "警告")
                    e.CancelEdit = True
                End If
            End If
        End If
    End Sub


问题出在
程序代码:

If isFileNameRight(e.Label) Then       '判断时候符合命名规则
    xmlNode.Attributes("Name").Value = e.Label.Trim()    '改写XML中的相关节点的属性,并去掉前后的空格
    FolderTreeView.SelectedNode.Text = e.Label.Trim()    '修改被修改节点显示文本
    xmlDoc.Save(xmlPath)         '保存XML文件
Else         '不符合命名规则
    MessageBox.Show("文件名不能包含任何以下字符:" & vbCrLf & "\ / : * ? """" < > |", "警告")
    e.CancelEdit = True
End If

TreeView中的相应的节点也应该前后的空格去掉,但是实际运行并没有去掉,不知道是为什么
但是XML中的节点去掉了空格

小的没有多少分,还望有人指导下~
2 回复
#2
zqmillet2010-08-19 16:38
另外,如果文件夹名字是空的,确实会弹出提示框
但是我先选择“重命名”这个选项,然后文件名被选中,此时可以改文件名,但是我不改文件名,直接点回车确认,也会弹出对话框


怎么解决啊,先谢谢了
1