各位大哥大姐,请问怎么在c#的winform中实现左边显示treeview,右边显示点击treeview树节点后的显示的新窗体?

解决方案 »

  1.   

    // 假定左边panel1,右边panel2
    this.panel2.Controls.Clear();
    Form4 form4 = new Form4();
    form4.TopLevel = false;
    this.panel2.Controls.Add(form4);
    form4.Show();
      

  2.   

    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                if (e.Node.Name == "")
                {
                    Form1 f= new Form1 ();
                    f.TopLevel = false;
                    f.FormBorderStyle = FormBorderStyle.None;
                    f.WindowState = FormWindowState.Maximized;
                    panel1.Controls.Add(f);
                    f.Show();
                }
            }
      

  3.   

    我整个form窗体没有用splitContainer控件,IsMdiContainer设置为true,左边的treeview Dock设置为left。我该怎么来实现每个节点点击后在右边显示新的窗体,显示的窗体随节点的不同显示也不同。
    小弟是刚刚开始接触winform,还望各位大哥大姐多多指点迷津,谢谢先~~
      

  4.   

    splitContainer1.panel1.Controls.Add(f);
      

  5.   

    给你说个简单的,左边是treeview,右面放个tabcontrol,树节点变化,tabcontrol的tabpage变换
      

  6.   

    楼上的意思是用splitContainer1控件后再添加如下代码吗?
    splitContainer1.panel1.Controls.Add(f);小弟新手,还请多多指点下,方便的话可否给出完整代码,谢谢~
      

  7.   


    Form4 form4 = new Form4();
    form4.TopLevel = false;
    this.Controls.Add(form4);
    form4.Dock = DockStyle.Right;
    form4.Show();你的意思是 不用panel?
    不用panel的话感觉比较难控制
      

  8.   

    那如果用panel是不是用splitContainer1是最简单的啊?
      

  9.   

    我一般用2个panel + 1个Splitter
    代码应该都差不多吧
      

  10.   

    楼上的大哥可否给段完整的代码?
    小弟初学winform...
    谢谢了~~
      

  11.   


            private void dgdMenu_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                switch (e.RowIndex)
                { 
                    case 0:
                        this.panel2.Controls.Clear();
                        SystemSettings.NewFolder.frmDiscountRate form1 = new UI.SystemSettings.NewFolder.frmDiscountRate();
                        form1.TopLevel = false;
                        this.panel2.Controls.Add(form1);
                        form1.Show();
                        break;
                    case 1:
                        this.panel2.Controls.Clear();
                        SystemSettings.NewFolder.frmMemberType form2 = new UI.SystemSettings.NewFolder.frmMemberType();
                        form2.TopLevel = false;
                        this.panel2.Controls.Add(form2);
                        form2.Show();
                        break;
                    case 2:
                        this.panel2.Controls.Clear();
                        SystemSettings.NewFolder.frmMemberShip form3 = new UI.SystemSettings.NewFolder.frmMemberShip();
                        form3.TopLevel = false;
                        this.panel2.Controls.Add(form3);
                        form3.Show();
                        break;
                    case 3:
                        this.panel2.Controls.Clear();
                        SystemSettings.NewFolder.Form4 form4 = new UI.SystemSettings.NewFolder.Form4();
                        form4.TopLevel = false;
                        this.panel2.Controls.Add(form4);
                        form4.Show();
                        break;
                    case 4:
                        this.panel2.Controls.Clear();
                        SystemSettings.NewFolder.Form5 form5 = new UI.SystemSettings.NewFolder.Form5();
                        form5.TopLevel = false;
                        this.panel2.Controls.Add(form5);
                        form5.Show();
                        break;
                }
            }
      

  12.   

    谢谢楼上qiao6174的大哥的指点,虽然你给的不是treeview的代码,但是给小弟如醍醐灌顶,知道该怎么做了,再次感谢~~
      

  13.   


      #region DoubleClick Show SubForm
            /// <summary>
            /// 点击树节点打开新子窗体
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void trevMenu_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                switch (e.Node.Name.ToString())
                {
                    case "trnUMSetPwd":
                        tsmiChangePwd_Click(sender, e);
                        break;
                    case "trnUMRsetPwd":
                        tsmiSetPassWord_Click(sender, e);
                        break;
                    case "trnUMRolMgr":
                        tsmiRoleMgr_Click(sender, e);
                        break;
                    case "trnUMOprMgr":
                        tsmiOperatorMgr_Click(sender, e);
                        break;
                }        }
            #endregion