Mam widok drzewa z węzłami takimi jak to: "Foo (1234)" i chcę umożliwić użytkownikowi zmianę nazwy węzłów, ale tylko część Foo, bez (1234). Po raz pierwszy starał się zmienić tekst węzła w BeforeLabelEdit
tak:Pytanie do edycji etykiety TreeView
private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
{
e.Node.Text = "Foo";
}
Ale gdy klikam węzeł do edycji, pojawi się „Foo (1234)” w polu tekstowym.
Dobra, to spróbujmy czegoś innego.
ustawić treeView1.LabelEdit
false, a następnie wykonaj następujące czynności:
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();
}
}
}
a potem w AfterLabelEdit
, ustawić LabelEdit
z powrotem na false.
I zgadnij co? To też nie działa. Zmienia tekst węzła na "Foo", ale pole edycji nie pojawi się.
Wszelkie pomysły? Dzięki
Dzięki za odpowiedź, postaram się to zrobić za pomocą niestandardowego malowania. I oczywiście głosowałem za Twoją sugestią :) – neo2862