以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]ListView重命名的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161148)

--  作者:2425004926
--  发布时间:2021/3/8 10:59:00
--  [求助]ListView重命名的问题
 
图片点击可在新窗口打开查看此主题相关图片如下:1615167539(1).png
图片点击可在新窗口打开查看

我用了ListView,以下是双击代码。
双击后文件名称显示蓝色可更改,更改名称后关闭窗口,再打开文件名称还是原来的。
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
If lvw.Current IsNot Nothing Then  
    lvw.Current.BeginEdit()
End If

这个是路径
ProjectPath & "Attachments\\" & "王宏谟藏品照片"
王宏谟藏品照片”这个是文件夹,比如说把“伤员用绑带”改为“绑带”,还要写一个什么代码?写在哪里?

--  作者:有点蓝
--  发布时间:2021/3/8 11:14:00
--  
更改文字有没有什么规则?如果没有,很难判断
--  作者:2425004926
--  发布时间:2021/3/8 12:19:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview.rar

我作了个例子,窗口1里,改名后关闭窗口,名称没改过来

--  作者:有点蓝
--  发布时间:2021/3/8 13:41:00
--  
参考:http://www.foxtable.com/webhelp/topics/2829.htm

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview.zip



--  作者:2425004926
--  发布时间:2021/3/8 15:27:00
--  
 非常感谢!明白了

--  作者:2425004926
--  发布时间:2021/3/8 16:04:00
--  
更名中若有同名称出现,会出错,我就作了一个判断,这个判断写在哪个事件比较合适,AfterEdit事件和BeforeEdit都不行

Dim a As String = "|"
For Each File2 As String In FileSys.GetFiles(ProjectPath & "Attachments\\王宏谟\\“)   \'将上级文件夹的所有名称罗列出来,变为一个字符串
    a = a  & file2 & "|"
Next
If a.Contains("|" & e.NewText & "|") Then   \'前后都有竖线是要避免局部名称一样,字符串包含新名称
    e.Cancel = True \'取消重命名
    MessageBox.Show("此文件夹中已经有同名称的文件,请重新命名!")
‘Else
    ’Dim file As String = ProjectPath & "Attachments\\" & f.text & "\\" & e.Row.text   \'原来的文件名称
    ‘FileSys.RenameFile(file,e.NewText)

End If

--  作者:2425004926
--  发布时间:2021/3/8 16:37:00
--  
问题找到了,还是在AfterEdit事件里写的代码,删除文件名的路径,只留下文件名OK了