![]() |
#2
zqmillet2010-08-19 16:38
|

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
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中的节点去掉了空格
小的没有多少分,还望有人指导下~