To try out the TreeView I use the following code.

private void Form5_Load(object sender, EventArgs e) { CreateRootNode(); treeView1.ContextMenuStrip = contextMenuStrip1; foreach (TreeNode RootNode in treeView1.Nodes) { RootNode.ContextMenuStrip = contextMenuStrip2; foreach (TreeNode ChildNode in RootNode.Nodes) ChildNode.ContextMenuStrip = contextMenuStrip2; } } // Заполнение дерева узлами public void CreateRootNode() { // Create the root node. // Создаем корневой узел. TreeNode docNode = new TreeNode("Documents"); // Add some additional nodes. // Добавьте некоторые дополнительные узлы. docNode.Nodes.Add("phoneList.doc"); docNode.Nodes.Add("resume.doc"); // Add the root nodes to the TreeView. // Добавьте корневые узлы в TreeView. treeView1.Nodes.Add(docNode); } // Добавить Корневой private void AddNewRootToolStripMenuItem_Click(System.Object sender, System.EventArgs e) { frmEnterText frm = new frmEnterText(); frm.ShowDialog(); string TempNodeText = frm.txtNodeName.Text; frm.Dispose(); if (TempNodeText.Trim() != "") { TreeNode _Node = new TreeNode(); _Node.Text = TempNodeText; _Node.ContextMenuStrip = contextMenuStrip2; treeView1.Nodes.Add(_Node); } } private void ClearAllToolStripMenuItem_Click(System.Object sender, System.EventArgs e) { treeView1.Nodes.Clear(); } // Добавить Подчинённый private void AddChildRootToolStripMenuItem_Click(System.Object sender, System.EventArgs e) { frmEnterText frm = new frmEnterText(); frm.ShowDialog(); string TempNodeText = frm.txtNodeName.Text; frm.Dispose(); if (TempNodeText.Trim() != "") { TreeNode _Node = new TreeNode(); _Node.Text = TempNodeText; _Node.ContextMenuStrip = contextMenuStrip2; treeView1.SelectedNode.Nodes.Add(_Node); } } // Переименовать private void RenameToolStripMenuItem_Click(System.Object sender, System.EventArgs e) { frmEnterText frm = new frmEnterText(); frm.ShowDialog(); string TempNodeText = frm.txtNodeName.Text; frm.Dispose(); TreeNode SelectedNode = treeView1.SelectedNode; if (TempNodeText.Trim() != "") SelectedNode.Text = TempNodeText; } // Удалить private void DeleteToolStripMenuItem_Click(System.Object sender, System.EventArgs e) { treeView1.SelectedNode.Remove(); } 

When the form is closed, the tree is saved in the XML file (this code is not considered).
Using the context menu, the code performs work with nodes:
- add;
- delete;
- rename.

When executing Rename, a new node name is entered in a separate dialog.

Question.
How to make the "rename" can be performed in a tree node (see screen)?
enter image description here

  • What are the problems with this? ( link ) - tym32167

1 answer 1

The ability to edit nodes is controlled by the TreeView.LabelEdit property. From the documentation:

Gets or sets of tree nodes can be edited.

Sets or returns a value indicating whether it is possible to edit the texts of the tree node labels.

To enable editing, set the property to true:

 treeView1.LabelEdit = true; 

To start editing a specific node, call the BeginEdit method:

 treeView1.SelectedNode.BeginEdit(); 

Changes will be saved by pressing Enter.