treeview 节点的编辑问题,当所修改的节点名称为空时,提示名称不能为空之后,
怎样使该节点还原为原样。点 treeview1.selectednode.beginEdit();
这样就能编辑了。
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            if (e.Label != null)
            {
                if (e.Label.Trim().Length == 0)
                {
                    MessageBox.Show("节点名称不能为空");
                    treeView1.SelectedNode.EndEdit(false);
                    //showNode();
                }
                else
                {
                    e.Node.Text = e.Label;
                    string node_id = e.Node.Name;
                    string nodeText = e.Label;
                    t_infoTableAdapter DA = new t_infoTableAdapter();
                    DA.UpdateNodeTextByNodeID(nodeText, Convert.ToInt32(node_id));
                }
            }
            
        }这用这个事件,能够当完成编辑时触发。但是不能把这个节点还原。
大家帮下手。

解决方案 »

  1.   

    http://time-is-life.cnblogs.com/articles/329691.html
      

  2.   

    你应该在BeginLabelEdit中记录当前节点的信息,以备AfterLabelEdit还原。
      

  3.   

    Use "MouseDown" eventyou can get tree node by treeview's "GetNodeAt" method
      

  4.   

    private void tvMenu_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                    tvMenu.SelectedNode = e.Node;
            }
      

  5.   

    取消编辑
    private void tvMenu_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
            {
                if ((e.Node == null) || (e.Label == null))
                    return;
                if (e.Label.Trim().Length == 0)
                    e.CancelEdit = true;
            }
      

  6.   

    取消编辑
    private void tvMenu_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
            {            if ((e.Node == null) || (e.Label == null))
                    return;
                if (e.Label.Trim().Length == 0)
                    e.CancelEdit = true;
            }