我建立了一个winForm项目,在里面添加了一个自定义控件treeview,控件treeview里面只有一个TreeView控件,Dock=Fill;
我在treeview.cs里面写了一个display函数显示一个节点树,但是在winForm里面调用的display根本就不显示,而显示的程序是没有问题的,如果直接在窗体中拉一个treeView控件就可以显示,求解。
主要程序如下://TreeView.cs
namespace WindowsFormsApplication1
{
    public partial class TreeView : UserControl
   {
        public TreeView()
        {
            InitializeComponent();
        }
        public void display()
       {
            TreeNode nodeShen=new TreeNode();
            nodeShen1.Text="001";
            this.treeView1.Nodes.Add(nodeShen);            TreeNode nodeXian = new TreeNode();
            nodeXian.Text = "002";
            nodeShen.Nodes.Add(nodeXian);            TreeNode nodeStationName = new TreeNode();
            nodeStationName.Text = "003";
            nodeXian.Nodes.Add(nodeStationName);
        }
    }
}
//Form1.cs
namespace WindowsFormsApplication1
{
    
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void toolStripButton1_Click(object sender, EventArgs e)
        {
                TreeView tv = new TreeView();
                tv.display(); //不起作用?求解
        }
       
    }
}

解决方案 »

  1.   

    为什么没有人回答基础问题呢?csdn应该聘请一些人来专门照顾我们啊,正是我们这些热爱的学习的菜鸟们才是csdn的主力啊。求看重!!!!
      

  2.   

    你能不能把 TreeView 改个名啊,改成 TreeViewEx试试
      

  3.   

    怎么不起作用,你是初始化了TreeView,但是呢,并未将用户控件添加到窗体上,如下TreeView tv = new TreeView();
                    tv.display();
                    this.Controls.Add(tv);
      

  4.   

    首先你贴出来的代码有错        public void display()
           {
                TreeNode nodeShen=new TreeNode();
                nodeShen1.Text="001";//这行应该是nodeShen.Text="001";
                this.treeView1.Nodes.Add(nodeShen);            TreeNode nodeXian = new TreeNode();
                nodeXian.Text = "002";
                nodeShen.Nodes.Add(nodeXian);            TreeNode nodeStationName = new TreeNode();
                nodeStationName.Text = "003";
                nodeXian.Nodes.Add(nodeStationName);
            }然后主要原因是:
    1)你既然是动态new出控件,那么就要像3楼说的那样做;
    2)如果是直接从工具箱拖出来的控件,那么请直接写控件name.display();即可,不要去new
      

  5.   

    楼上说的有问题啊,你是觉得我TreeView名字可能跟控件TreeView重合了,那我可以把他改成UserTreeView,然后还是那样的问题显示不了,按照4楼的说法我加了this.Controls.Add(UserTreeView)也是不行,还是请实例一下谢谢。
      

  6.   

    我知道了,呵呵,其实很简单,在窗体中已经有Treeview的实例了,直接可以用就好了,不需要new了,谢谢你们的启发。