C# 如何在不删除树视图上的子节点的情况下替换选定的节点文本?
C# How to replace selected node text without removing the child node on treeview?
我有一个具有 3 层层次结构的树视图节点。目前,添加、删除功能正在运行。他们只剩下将修改后的文本追加到选定的节点而不在插入之前删除节点?
我在这个论坛和搜索引擎结果中看到了一些问题,但解决方案看起来不像我需要的。
我找到的解决方案:-
获取选中的节点索引,删除它,插入新的到选中的索引节点。在 here
在树视图节点内循环,查找选定的节点字符串并将其替换为新字符串。在 here.
为什么我不能遵循上面的想法?
- 如果选择的节点先被删除,子节点也会被删除吗?
- 如果有超过 1 个节点具有相同的文本,则必须在递归循环中替换它。
我现在有的是Parent和Current Selected的索引。因此,这将是两个层次结构索引。
indxparent.Text = TreeView1.SelectedNode.Parent.Index.ToString() ?? "-";
indxchild.Text = TreeView1.SelectedNode.Index.ToString() ?? "-";
如何编程将新文本修改到所选节点/所选节点索引?
在 Kempeth 提出他的解决方案之前使用的工作代码:
方法一:
string newdata = "This is new information data";
TreeView1.LabelEdit = true;
if (!TreeView1.SelectedNode.IsEditing)
{
TreeView1.SelectedNode.BeginEdit();
TreeView1.SelectedNode.Text = newdata;
TreeView1.SelectedNode.EndEdit(false);
}
方法二:
string newdata = "This is new information data";
TreeNode node = new TreeNode(newdata);
TreeView1.SelectedNode.Parent.Nodes.RemoveAt(IndexOfSelectedNode);
TreeView1.SelectedNode.Parent.Nodes.Insert(IndexOfSelectedNode, node);
TreeView1.SelectedNode = node;
您是否尝试过简单地设置 SelectedNode
的 Text
属性?
TreeView1.SelectedNode.Text = TreeView1.SelectedNode.Text + " MAGIC!"
我有一个具有 3 层层次结构的树视图节点。目前,添加、删除功能正在运行。他们只剩下将修改后的文本追加到选定的节点而不在插入之前删除节点?
我在这个论坛和搜索引擎结果中看到了一些问题,但解决方案看起来不像我需要的。
我找到的解决方案:-
获取选中的节点索引,删除它,插入新的到选中的索引节点。在 here
在树视图节点内循环,查找选定的节点字符串并将其替换为新字符串。在 here.
为什么我不能遵循上面的想法?
- 如果选择的节点先被删除,子节点也会被删除吗?
- 如果有超过 1 个节点具有相同的文本,则必须在递归循环中替换它。
我现在有的是Parent和Current Selected的索引。因此,这将是两个层次结构索引。
indxparent.Text = TreeView1.SelectedNode.Parent.Index.ToString() ?? "-";
indxchild.Text = TreeView1.SelectedNode.Index.ToString() ?? "-";
如何编程将新文本修改到所选节点/所选节点索引?
在 Kempeth 提出他的解决方案之前使用的工作代码:
方法一:
string newdata = "This is new information data";
TreeView1.LabelEdit = true;
if (!TreeView1.SelectedNode.IsEditing)
{
TreeView1.SelectedNode.BeginEdit();
TreeView1.SelectedNode.Text = newdata;
TreeView1.SelectedNode.EndEdit(false);
}
方法二:
string newdata = "This is new information data";
TreeNode node = new TreeNode(newdata);
TreeView1.SelectedNode.Parent.Nodes.RemoveAt(IndexOfSelectedNode);
TreeView1.SelectedNode.Parent.Nodes.Insert(IndexOfSelectedNode, node);
TreeView1.SelectedNode = node;
您是否尝试过简单地设置 SelectedNode
的 Text
属性?
TreeView1.SelectedNode.Text = TreeView1.SelectedNode.Text + " MAGIC!"