如何处理带有分号的TreeView节点;

本文关键字:TreeView 节点 何处理 处理 | 更新日期: 2023-09-27 17:49:14

我有一个DevComponents。用TFS工作项填充的AdvTree。每个工作项都有一个名为"Folder"的纯文本字符串,它保存了在遗留系统中保存项目的文件夹结构。

我已经实现了这样的功能,即拖放树视图节点时会自动更新'Folder'字符串,以匹配节点的完整路径。

如果一个工作项有一个'Folder'字符串,如:

"Folder1/Folder2/Folder3"

则AdvTree在FullPath属性中表示为:

"Folder1;Folder2;Folder3"

如果拖放节点,则执行以下代码:

    public static void UpdateNode(Node node)
    {
        string nodePath;
        WorkItem wi = (WorkItem)node.Tag;
        nodePath = node.FullPath.Replace(';', '/');
        wi.Open();
        wi.Fields[30].Value = nodePath; //The 'Folder' string'
        wi.Save();
        wi.Close();
        wi = null;
    }

这很好,除非在原始'Folder'字符串中包含分号;。在这种情况下,有效的分号也被替换为/,导致整个文件夹结构发生变化。

我想到了一个解决方案,即我用另一个字符或字符串替换所有现有的分号,并在TreeView中将其显示为;,但这似乎非常复杂。

谁能提供一个更简单的解决方案?

谢谢,安迪

如何处理带有分号的TreeView节点;

感谢JleruOHeP在评论中回答了这个问题。

在为AdvTree返回FullPath时用于分隔节点的字符实际上可以在运行时使用以下代码进行更改:

testCaseTreeView.PathSeparator = "/";

如果使用标准的TreeView,可以在设计时设置。