C#树形控件能不能实现这样的功能:点击树形控件中的某一项,实现跟点击按钮一样的效果。或者,配合着按钮,先选中树形控件的某一项在点击按钮,根据选中的项来实现不同的函数。

解决方案 »

  1.   

    可以,asp.net中的treeview就是做这个的
      

  2.   

    那看你根据什么来了,无非就是
    if (node.text == ?)
      dosomething或者你可以把过程的名字存储到节点的tag属性中,然后根据名字动态的出发同名的方法
    当然保存函数指针也可以
      

  3.   


    switch (treeView1.tag)
                {
                    case "computer":
                        textBox1.Text = "computer";
                    case "system":
                        textBox1.Text = "system";
                    case "car":
                        textBox1.Text = "car";
                }这样用tag是有问题的,应该怎么修改,就是怎么使用这个treeview控件
      

  4.   

    AfterSelect
    e.Node.Text  委托,反射调用
      

  5.   


            private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    //选中右键点击的节点
                    treeView1.SelectedNode = e.Node;
                    //显示右键菜单
                    contextMenuStrip1.Visible = true;
                    //设置右键菜单的位置
                    contextMenuStrip1.Left = MousePosition.X;
                    contextMenuStrip1.Top = MousePosition.Y;
                }
                else
                {
                    //点击其他节点时,取消正在编辑状态的节点
                    textBox1.Text = "";
                    groupBox1.Enabled = false;
                    //显示当前选择的节点的信息
                    richTextBox1.Text = "名称:"+e.Node.Text+"\n节点属性:"+e.Node.Tag;
                }
            }
      

  6.   

    上面我的代码判断点击树节点的是左键还是右键右键显示右键快捷菜单,并使右键菜单的位置在鼠标下方左键点击时richTextBox1显示节点属性信息,当然你把我代码的else{}代码块的内容改为你要做的事件就行了
    结贴给分。
      

  7.   


    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    treeView1.SelectedNode = e.Node;
                    switch (e.Node.Text)
                    { 
                        case "计算机":
                            textBox1.Text = "computer";
                            break;
                        case "系统":
                            textBox1.Text = "system";
                            break;
                        case "汽车":
                            textBox1.Text = "car";
                            break;
                        default:
                            textBox1.Text = "";
                            break;
                    }
                }
            }用ls的可以实现,先谢过了,还有什么问题还得请教。