我有一个像这样的节点的树视图:"Foo(1234)",并希望允许用户重命名节点,但只允许Foo部分,没有(1234).我首先尝试更改节点文本,BeforeLabelEdit
如下所示:
private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e) { e.Node.Text = "Foo"; }
但是当我单击节点进行编辑时,文本框中会出现"Foo(1234)".
好的,那就让我们试试别的吧.
我设置treeView1.LabelEdit
为false,然后执行以下操作:
private void treeView1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (treeView1.SelectedNode == treeView1.GetNodeAt(e.Location)) { treeView1.SelectedNode.Text = "Foo"; treeView1.LabelEdit = true; treeView1.SelectedNode.BeginEdit(); } } }
然后AfterLabelEdit
,我LabelEdit
回到了假.
你猜怎么着?这也不起作用.它将节点文本更改为"Foo",但不显示编辑文本框.
有任何想法吗?谢谢
最后,我在CodeProject上找到了解决方案.在底部的评论中,您还可以找到便携式解决方案.