比如说增加页面是ControlAdd
开始Panel2显示DataGridView,右击treeview点击增加
ControlAdd可见(Visible设置为true)、DataGridView隐藏(Visible设置成false)
再次点击treeview,把DataGridView显示(Visible赋值true)、隐藏ControlAdd(Visible属性赋值false)

解决方案 »

  1.   

    右键  选中显示菜单?在菜单item的click事件与treeview的AfterSelect 事件中 控制control与dgv的显示与隐藏就可以了。这个父子窗体没关系。
      

  2.   

    弄个全局bool变量,标识一下到底是第几次点击
      

  3.   

    使用Panel设置显示隐藏窗体示例
    //Panel框架设置
    <table>
    <tr>
    <td>
     <asp:Panel ID="pllogin" runat="server">
    <table>//设置在左面
    <tr>
    <td>
    //treeview控件设置
    <asp:Button ID="Button1" runat="server" Text="增加" />
    <asp:Button ID="Button2" runat="server" Text="增加" />
    </td>
    </tr>
    </table>
     </asp:Panel>
    <asp:Panel ID="plreg" runat="server">
    <table>//设置在右面
    <tr>
    <td>
    <asp:Panel ID="plreg2" runat="server">
    <table>
    <tr>
    <td>
    //GridView控件
    </td>
    </tr>
    </table>
     </asp:Panel></td>
    </tr>
    </table>
     </asp:Panel></td>
    </tr>
    </table>
    //cs页面设置
     protected void Button1_Click(object sender, EventArgs e)
        {
            plreg.Visible = true;
            plreg2.Visible = false;
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            plreg.Visible = true;
            plreg2.Visible = true;    }
      

  4.   

    两个页面我知道这么可以搞,panel2中除了datagridview和ControlAdd还有四五个页面,都这么写会不会嫌的冗余呀?
      

  5.   

    实现方式有两个,比较简单的是使用 TabControl,然后隐藏 TabHeader。这样就感觉只有一个面板。当然 TabHeader 显示出来也没有不好。
    你也可以使用第二种,实现把需要在右侧填充的控件事先 Dock 好,然后程序启动,动态的设置他们的 Visible 属性。这样看起来就是切换功能。
      

  6.   

    我右边放的是一个新的form,不是控件,怎么用visible处理呢
      

  7.   

    那就 new 一个 form 啊