У меня есть древовидная структура с такими узлами: «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
обратно в false.
И угадайте что? Это тоже не работает. Он изменяет текст узла на «Foo», но текстовое поле редактирования не отображается.
Есть идеи?
Спасибо