首先要判断当前树节点是第几层:
public int TreeNodeLevel(TreeNode Node)
{
int rtn = 0;
while(Node != null)
{
Node = Node.Parent;
rtn++;
}
return rtn;
}
然后根据不同的层判断并加载一个UserControl在你的窗口内(tab或者是panel)
UserControl temp;
if (TreeNodeLevel(e.Node)==2){
temp=new uc2();
this.tabPage1.Controls.Add(temp);
}
if (TreeNodeLevel(e.Node)==3){
temp=new uc3();
this.tabPage1.Controls.Add(temp);
}
在uc2,uc3内构造DataGrid,monthCalendar
public int TreeNodeLevel(TreeNode Node)
{
int rtn = 0;
while(Node != null)
{
Node = Node.Parent;
rtn++;
}
return rtn;
}
然后根据不同的层判断并加载一个UserControl在你的窗口内(tab或者是panel)
UserControl temp;
if (TreeNodeLevel(e.Node)==2){
temp=new uc2();
this.tabPage1.Controls.Add(temp);
}
if (TreeNodeLevel(e.Node)==3){
temp=new uc3();
this.tabPage1.Controls.Add(temp);
}
在uc2,uc3内构造DataGrid,monthCalendar
{
int rtn = 0;
while(Node != null)
{
Node = Node.Parent;
rtn++;
}
return rtn;
}
然后根据你的界点判断加载不同控件
UserControl temp;
if (TreeNodeLevel(e.Node)==2)
{
temp=new uc1();
this.tabPage1.Controls.Add(temp);
}
if (TreeNodeLevel(e.Node)==3)
{
temp=new uc2();
this.tabPage1.Controls.Add(temp);
}
uc1是加载你的DataGrid,uc2加载monthCalendar
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
string temp;
temp = this.treeView1.SelectedNode.ToString();
this.textBox1.Text = temp;
if (temp=="报表")
{
this. DataGrid.Visible = true;
}
else
{
this.monthCalendar1.Visible=true; }
}
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
string temp;
temp = e.Node.Text;
this.textBox1.Text = temp;
if (temp=="报表")
{
this. DataGrid.Visible = true;
}
else
{
this.monthCalendar1.Visible=true; }
}
if(e.Node.value == "")
{
//do something
}
else
{
//do else something
}
这样不用去判断当前的是第几级,很方便。