我 C# treeView 显示文件夹序列节点如何在不更改源文件夹名称的情况下在表单加载时重复重命名节点

I C# treeView shows folder sequence nodes How to rename nodes Recurrently on form load without changing source folder name

我有一个显示树视图的表格,树视图预览硬盘驱动器中的一些文件夹、子文件夹和文件,如下例所示:

如何在不更改源文件夹名称的情况下更改树视图中节点的名称

我的意思是我需要在表单中更改节点名称 例如,名为 "debug" 的节点向用户显示为 "XXX",但文件夹仍名为 debug

首先,我分不清你用的是Windows Forms还是WPF,所以我针对Windows Forms进行说明。


制作一个ContextMenuStrip,然后制作一个DropdownItem,文字为Rename

下一步,双击项目;这将打开包含 TreeView

FormForm.cs

现在,通过单击位于[=112= 顶部栏的Project 按钮创建一个新表格],(我假设您正在使用)并单击 Add Windows Form - 这将打开一个 window 询问 Form 应该是什么名称。

Next,添加新表单后,在新的Form上创建一个TextBox,并创建一个Button,其中包含文本正在 Rename

好的,现在我们已经介绍了那部分,返回到 Form.cs 并导航到 rename_Click() 事件。 (我确定事件名称实际上不是 rename_Click(),这只是一个示例)

现在,将这段代码放在花括号之间(代码块):

renameForm rf = new renameForm();
rf.ShowDialog();

OK! 现在,我们需要回到之前创建的另一个 Form。打开之前创建的 FormForm.cs,然后滚动到顶部。在 public Form() 事件之前,键入:

public static string newName = "";

So! 当包含我们的 ContextMenuStripTreeView 的父 Form 打开我们的第二个 Form

但是,现在,我们需要发回数据,对吧?

回到父级 Form 中的 rename_Click(),即包含我们的 TreeViewContextMenuStriprename_Click(),并在 rf.ShowDialog(); 之前添加:

rf.FormClosed += rename_Closed;

如果事件尚不存在,您可能需要按 TAB 键创建该事件

在第二个Form中,包含我们的TextBoxButton,双击Button,打开Form.cs

button_Click()的花括号(代码块)内,添加:

 newName = textBox1.Text;

然后,在rename_Closed()的花括号(代码块)内,添加:

treeView1.SelectedNode.Text = renameForm.newName;

这应该创建一个简单但有效的重命名系统。


希望对你有帮助:)