编辑后获取树节点文本
本文关键字:文本 树节点 获取 编辑 | 更新日期: 2023-09-27 18:32:46
我有一个树视图,我允许用户创建新的树节点。当他们创建树节点时,我会自动进入编辑模式。我正在尝试做的是在"AfterLabelEdit"中编辑完成后保存分配给树节点的名称。
我发现在此方法中检查标签会返回原始标签,因为它似乎在方法完成之前不会提交到树中。
如何在编辑后获取新标签?有没有办法强制在此方法中提交更改?
希望这是有道理的!
实际的节点文本在 AfterLabelEvent 事件完成后才会更改。 该事件在 e.Label 属性中传递新的标签文本。 这就是你想要的。
处理不稳定的 TreeView 事件的标准技巧是延迟操作,直到事件完成。 使用 Control.BeginInvoke() 方法优雅地完成:
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) {
this.BeginInvoke(new Action(() => afterAfterEdit(e.Node)));
}
private void afterAfterEdit(TreeNode node) {
string txt = node.Text; // Now it is updated
// etc..
}
Use e.Label
from System.Windows.Forms.NodeLabelEditEventArgs e
private void treeView1_AfterLabelEdit(object sender, System.Windows.Forms.NodeLabelEditEventArgs e)
{
if (e.Label != null)
{
........
}
}
http://msdn.microsoft.com/en-us/library/system.windows.forms.nodelabelediteventargs.label.aspx