private void NodeSelectionChanged(object s = null, EventArgs e = null) { var selectedNode = _treeView.SelectedNode == null ? null : _treeView.SelectedNode as EditableNode; if (selectedNode == _editingNode) return; TryApplyEditChanges(); if (selectedNode == null) return; _editingNode = selectedNode; _editingNode.HideText(); _treeView.SelectedNode = null; //Hide selection selectedNode.Text = ""; _editLabel.Visible = true; _editText.Visible = true; _editLabel.Text = selectedNode.Key; _editText.Text = selectedNode.Value; _editLabel.Left = selectedNode.Bounds.Left; _editLabel.Top = selectedNode.Bounds.Top; _editText.Left = _editLabel.Right; _editText.Top = _editLabel.Top; }