【发布时间】:2023-03-31 23:57:02
【问题描述】:
我有一个具有 3 层层次结构的树视图节点。目前,添加、删除功能正常工作。他们只剩下将修改后的文本附加到所选节点中而不在插入之前删除节点?
我在这个论坛和搜索引擎结果中看到了一些问题,但解决方案看起来不像我需要的。
我找到的解决方案:-
为什么我不能按照上面的想法?
- 如果选中的节点先被移除,那么子节点也会被移除吗?
- 如果有超过 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;
【问题讨论】:
标签: c# winforms treeview .net-4.6