Tôi có một khung nhìn tre với các nút như sau: "Foo (1234)" và muốn cho phép người dùng đổi tên các nút, nhưng chỉ phần Foo, không có (1234). đầu tiên tôi đã cố gắng để thay đổi văn bản nút trong BeforeLabelEdit
như thế này:Câu hỏi chỉnh sửa nhãn TreeView
private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
{
e.Node.Text = "Foo";
}
Nhưng khi tôi nhấp vào nút để chỉnh sửa nó, "Foo (1234)" xuất hiện trong hộp văn bản.
OK, sau đó hãy thử cái gì khác.
tôi đặt treeView1.LabelEdit
false, và sau đó thực hiện như sau:
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();
}
}
}
Và sau đó trong AfterLabelEdit
, tôi đặt LabelEdit
trở lại sai.
Và hãy đoán xem? Điều này không hoạt động. Nó thay đổi văn bản nút thành "Foo" nhưng hộp soạn thảo không xuất hiện.
Bất kỳ ý tưởng nào? Cảm ơn
Cảm ơn câu trả lời của bạn, tôi sẽ cố gắng làm điều đó bằng cách vẽ tùy chỉnh. Và tất nhiên tôi đã bình chọn cho đề xuất của bạn :) – neo2862