问题一:如何取得编辑后的内容?
意图:对一结点的文本进行编辑,取得编辑后的内容,以便进行保存或恢复文本(如果不保存到数据库)。问题二:如何判断右键未选中树节点?
意图:通过判断右键是否选中树上某一节点,来确定是否弹出菜单。
      本想通过取得树现在所处状况下的下边界坐标来判断右键是否击中空白区域。
ps:为什么给不了分?

解决方案 »

  1.   

    问题1、你是要编辑节点文字吗?
    问题2、处理TreeView的MouseUp事件,用TreeView的GetNodeAt方法获得被点中的节点
    例如:
    private void treeView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if (e.Button != MouseButtons.Right) return;
    TreeNode node = treeView1.GetNodeAt(e.X, e.Y);
    if (node != null) MessageBox.Show("Node Selected");
    }
      

  2.   

    private void tvwFolder_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
    if(e.KeyCode == Keys.F2) {
    TreeNode node = tvwFolder.SelectedNode;
    if(node.GetType() == typeof(FolderTreeNode)){
    tvwFolder.LabelEdit = true;
    node.BeginEdit();
    }
    }
    } private void tvwFolder_AfterLabelEdit(object sender, System.Windows.Forms.NodeLabelEditEventArgs e) {
    if(e.Label != null) {
    TreeNode node = tvwFolder.SelectedNode;
    if(node.GetType() == typeof(FolderTreeNode)) {
    //这里的 e.Lable或者node.Text就是你要取的值 
    }
    }
    tvwFolder.LabelEdit = false;
    }
      

  3.   

    兄弟,好象不行?
    FolderTreeNode?
      

  4.   

    呵呵,不好意思,大意了,直接copy以前的代码了,FolderTreeNode 是我继承的TreeNode类,改成TreeNode吧,惭愧