zqmillet 发表于 2010-8-19 16:21

TreeView节点重命名时的问题

[code][color=#0000FF]Private[/color] [color=#0000FF]Sub[/color] FolderTreeView_AfterLabelEdit([color=#0000FF]ByVal[/color] sender [color=#0000FF]As[/color] [color=#0000FF]Object[/color], [color=#0000FF]ByVal[/color] e [color=#0000FF]As[/color] System.Windows.Forms.NodeLabelEditEventArgs) [color=#0000FF]Handles[/color] FolderTreeView.AfterLabelEdit

        [color=#0000FF]Dim[/color] xmlDoc [color=#0000FF]As[/color] XmlDocument = [color=#0000FF]New[/color] XmlDocument()
        xmlDoc.Load(xmlPath)
        [color=#0000FF]Dim[/color] xPath [color=#0000FF]As[/color] [color=#0000FF]String[/color]
        xPath = GetXPath(focusNode.FullPath.Replace([color=#800000]"[/color][color=#800000]\[/color][color=#800000]"[/color], [color=#800000]"[/color][color=#800000]/[/color][color=#800000]"[/color]))
        xPath = [color=#800000]"[/color][color=#800000]/[/color][color=#800000]"[/color] & xPath

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

问题出在
[code]
[color=#0000FF]If[/color] isFileNameRight(e.Label) [color=#0000FF]Then[/color]       [color=#008000]'[/color][color=#008000]判断时候符合命名规则[/color][color=#008000]
[/color]    xmlNode.Attributes([color=#800000]"[/color][color=#800000]Name[/color][color=#800000]"[/color]).Value = e.Label.Trim()    [color=#008000]'[/color][color=#008000]改写XML中的相关节点的属性,并去掉前后的空格[/color][color=#008000]
[/color]    FolderTreeView.SelectedNode.Text = e.Label.Trim()    [color=#008000]'[/color][color=#008000]修改被修改节点显示文本[/color][color=#008000]
[/color]    xmlDoc.Save(xmlPath)         [color=#008000]'[/color][color=#008000]保存XML文件[/color][color=#008000]
[/color][color=#0000FF]Else[/color]         [color=#008000]'[/color][color=#008000]不符合命名规则[/color][color=#008000]
[/color]    MessageBox.Show([color=#800000]"[/color][color=#800000]文件名不能包含任何以下字符:[/color][color=#800000]"[/color] & vbCrLf & [color=#800000]"[/color][color=#800000]\ / : * ? """" < > |[/color][color=#800000]"[/color], [color=#800000]"[/color][color=#800000]警告[/color][color=#800000]"[/color])
    e.CancelEdit = [color=#0000FF]True[/color]
[color=#0000FF]End[/color] [color=#0000FF]If[/color]
[/code]
TreeView中的相应的节点也应该前后的空格去掉,但是实际运行并没有去掉,不知道是为什么
但是XML中的节点去掉了空格

小的没有多少分,还望有人指导下~

zqmillet 发表于 2010-8-19 16:38

另外,如果文件夹名字是空的,确实会弹出提示框
但是我先选择“重命名”这个选项,然后文件名被选中,此时可以改文件名,但是我不改文件名,直接点回车确认,也会弹出对话框


怎么解决啊,先谢谢了

页: [1]

编程论坛