每一个功能窗体都会在主界面窗体中嵌入,这个该如何实现。

解决方案 »

  1.   

    C#制作MDI窗体
    在VB中做 MDI窗体很简单。在C#里就没有这个轻松了,不过还是很方便的。
    首先在C#里添加一个窗体,命名为MdiMain,将其IsMdiContainer设定成true,这样MDI主窗体就建立了。然后再添加新窗体,命名为MdiChild。现在运行程序,会发现只运行了MdiMain这个主窗体。呵呵因为我们没有写任何代码,第二个窗体当然不能出现了。现在来添加这个代码。
    在MdiMain窗体上添加一个Menu,然后随便写个子菜单。双击子菜单,会出现它的Click事件,在这个事件内写如下代码:
    MdiChild frmMdiChild=new MdiChild();
    frmMdiChild.MdiParent=this;
    frmMdiChild.Show();
    这样在单击菜单项的时候就能显示MdiChild这个窗体了。但是这样会出现一个问题,就是说如果我按两次那个菜单项就会出现两个MdiChild窗体,呵呵,这是因为在C#中窗体就是一个Class,用刚才的代码就新建了一个MdiChild的实例。所以你按几次菜单项就会出现几个窗体了。控制的方法之一就是写一个变量,来存放是否打开了这个窗体,如果打开了就不继续执行了。这个小代码还是很简单的。
    如果想通过程序关闭MdiChild窗体,只需在MdiChild里添加一个Button,在Button的Click事件里写上Close();就可以了。
      

  2.   

    功能窗体之间有联系吗?
    如果功能相互独立,彼此交互不多的情况下可以考虑CAB (Component UI Application Block)。
      

  3.   

    在窗体属性中调下MDI属性.
    然后跟正常的弹窗体代码是一样的.
    比如
       SubWindow sw = new SubWindow();
       sw.ShowDialog();
      这里的SubWindow就是你所指的功能窗体,
      不知道是否达到您想要的效果?
      

  4.   

    A窗体中点击菜单中的一个功能,在A窗体内,菜单栏下面会显示B窗体
      

  5.   

    在主窗体上放一个Panel然后
    Form2.TopLevel = False
    Form2.Parent = Panel
    Form2.Show();
      

  6.   

     list frm = new list();
                frm.FormBorderStyle = FormBorderStyle.None;
                frm.Dock = DockStyle.Fill;
                frm.TopLevel = false;
                this.Controls.Add(frm);
                frm.Show();