首先要判断当前树节点是第几层:
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

解决方案 »

  1.   

    <tagprefix:TREEVIEW oncheck = "handler" ... > handler 就是你处理的函数
      

  2.   

    public int TreeNodeLevel(TreeNode Node)
    {
    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
      

  3.   

    To 我知道啊!但是语句是怎么样的?窗体已经放置DataGrid和monthCalendar,使其Visible属性为false,在TreeView控件添加AfterSelect事件,用其参数Node的属性来判断节点的所属,然后修改DataGrid或monthCalendar的Visible属性。
      

  4.   

    是:
    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;           }
     }
      

  5.   

    如下:
    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;           }
     }
      

  6.   

    用value比用text好,因为text是用来显示的,
    if(e.Node.value == "")
    {
        //do something
    }
    else
    {
       //do else something
    }
    这样不用去判断当前的是第几级,很方便。