各位大侠 在已经创建好的treeview的根节点:计算机下有 C:和d:两个子节点
我想在textbox中输入 计算机\c:\new 单机回车 就能在相应的节点下 创建新的节点如果这个问题复杂的话
那么该如何实现 输入:计算机\c:后 选中该节点
请问该如何实现????或者有木有什么类可以完成此操作??

解决方案 »

  1.   

    你可以写一个处理字符串的函数,比如你输入的是\:C,你获取冒号后面的字符,存到一个变量,再用for循环比较treeview的节点,如果与这个变量相同,那么就让选中该节点为真。
      

  2.   

    你的节点都是固定的 还是?
    如果是固定的 你控制起来肯定和容易啊。
    substring 可以解决
    正则也可以处理 substring试了一下----碰到一个情况nodes["c:"]会找不到,用索引了        private void textBox5_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyValue==13)
                {
                    string str = textBox5.Text;
                    string strNode = str.Substring(7, str.Length - 7).ToString();
                    string strPare = str.Substring(4, 2).ToString();
                    TreeNode tnode = new TreeNode(strNode);                if (str.Substring(0, 7).ToString() != "计算机\\c:\\")
                    {
                        MessageBox.Show("请输入正确的");
                        return;
                    }
                    else if (strPare == "c:")
                        treeView1.Nodes[0].Nodes[0].Nodes.Add(tnode);
                    else if (strPare == "d:")
                        treeView1.Nodes[0].Nodes[1].Nodes.Add(tnode);
                }
            }
      

  3.   

    你要固定你输入字符串的格式然后响应textbox的textchange消息,分析相应的字符串就可以了
      

  4.   

                if (e.KeyCode == Keys.Enter)
                {
                    string[] array = Regex.Split(textBox1.Text, @"\\");
                    treeView1.Nodes.Clear();
                    treeView1.Nodes.Add(array[0]);
                    TreeNode current = treeView1.Nodes[0];
                    for (int i = 1; i < array.Length; i++)
                    {
                        current.Nodes.Add(array[i]);
                        current = current.Nodes[0];
                    }
                }
      

  5.   

    e.KeyValue == 回车(13)TreeNode trnode = new TreeNode(this.TextBox1.Text);this.treeview1.Nodes.Add(trnode);