我建立了一个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(); //不起作用?求解
}
}
}
我在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(); //不起作用?求解
}
}
}
tv.display();
this.Controls.Add(tv);
{
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