TreeView节点重命名时的问题,有几个Bug,不知道怎么调试

zqmillet 2010-08-19 04:44:54

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中的节点去掉了空格

关于这一段代码

If e.Label = "" Then '判断新的名字是否为空
MessageBox.Show("目录名不能为空", "警告")
e.CancelEdit = True
Else
……

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


先谢谢了
...全文
184 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqmillet 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gxingmin 的回复:]

应该在BeforeLabelEdit事件里写吧
[/Quote]先谢谢了

我试过了,效果和After一样
gxingmin 2010-08-19
  • 打赏
  • 举报
回复
应该在BeforeLabelEdit事件里写吧
DataPie数据库导入导出工具 v3.4源码 源码描述: DataPie 功能:SQL server 2008、ORACLE与ACCESS 2007数据库的导入、导出、存储过程计算,支持EXCEL2007、EXCEL2003、ACCESS2007、 CSV文件导入数据库,支持CSV文件转EXCEL文件。 更新 V1.0,2012年2月3日 支持sql server导入导出、存储、过程调用 V2.0,2012年2月15日 主要变化:新增ACCESS2007支持,重写大部分代码,重命名为DataPie V2.01,2012年3月1日 新增数据库服务的开启与关闭 V2.04,2012年3月12日 新增treeview控件节点的双击事件,添加导出默认文件名,修订打包程序,修订默认导出表最大数量为10, 新增存储过程调用timeout属性,控制只允许一个进程运行 V2.05,2012年3月19日 新增access文件后缀的判断,测试连接功能,新增是否存在sql服务的判定,以及默认打开sql服务。 修正treeview双击根节点,不添加到列表中。修正重新登录后,还留下前一次登录,选择的信息。 V2.06,2012年4月15日 添加通过sql表值函数进行分页的支持。 V3.0.1,2012年5月13日 重构整个数据访问层,增强了扩展性(只需要实现接口IDBUtility中的几个方法,即可轻松扩展到其它数据库)。 整合调整了一些类库,修正了模板导出,格式与数据库中字段顺序不一致的问题。 增加了分多个EXCEL导出表数据。 V3.0.2,2012年5月14日 修正了ACCSS无法识别联合查询的bug,更新了打包的属性。 V3.1,2012年5月17日 重构了表现层。 V3.2,2012年5月19日 增加了对ORACLE数据库的支持。 V3.2.1,2012年6月13日 增加了对ACCESS数据导入数据库的支持 V3.3,2012年7月25日 重构了界面层,将EXCEL导入导出相关逻辑独立出来放入UiServices类,添加自定义sql导出功能 V3.4,2012年7月29日 添加了csv转EXCEL工具,调整了UiServices类的结构。多表导出增加了OFFICE组件方式导出。

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧