我有这么个需求:有2个窗体,一主(大)一从(小),要求显示的时候小窗体在大窗体里边。用鼠标拖动小窗体。但是要求不允许小窗体拖到大窗体外边。我是这么做的。小窗体.owner=大窗体。但是小窗体依然可以被拖出大窗体。问有无方法使得小窗体拖不出大窗口。
还有就是我要求程序一启动就显示大小窗体。问一下。在大窗口程序的什么部位构造小窗体最好。是在load?还是在show?还是在其他的时候最好!!!

解决方案 »

  1.   

    还有个问题。是用MDIparent的。但是小窗口拖动到边框以外的时候。窗体出现滚动条了。如何是他没有滚动条。首先我已经设置了autoscollbar=false 了。但是他移动到外边的时候还是出现了。有什么方法让他不出现滚动条么?
      

  2.   

    在主窗口里加一个Panel,把Panel的Dock设置为Full,然后这样加开子窗体            Form2 frm = new Form2();
                frm.MdiParent = this;
                frm.Parent = panel1;
                frm.Show();
      

  3.   

    有没有不+panel的方法么。楼上的大哥。你的方法我尝试过了。确实可以!!我想要一个不需要panel的方法
      

  4.   

    还有就是实现我要求的就只有mdi么。还有其他的方式么?
      

  5.   

    主窗体是Form1,子窗体是Form2
    可以这样实现,
    Form2 from2=new form2();
    from2.TopLevel = false;
    from2.Visible = true;
    this.Controls.Add(form2);
      

  6.   


    加个Panel会有什么问题呢?
      

  7.   

    我是在主窗体上进行的很多绘图工作。很多
    不想在弄到panel上。在说在panel上有些也不好控制
      

  8.   

    将主(大)窗体的IsMdicatainer设为True, 在实例化从(小)的窗体时,将从窗体的MdiParent属性设为this就行了.
      

  9.   

    就是在主窗体上加个Label后用MDIparent啊~
      

  10.   

    判断小窗体与大窗体的相对位置,当小窗体移动时,写代码控制移动范围小窗体最好在大窗体的load里加载,这样好传参
      

  11.   

    创建MDI的步骤和简单
    首先,你把你需要设置为父窗体的窗体IsMDIContainer属性设置为True。
    然后,
    父窗体要打开子窗体的单击事件中
    {
         子窗体Name 对象 = new 子窗体Name();
         对象.MdiParent = this;
         对象.show();
    }