由于是公司项目,我就不上图了,文字描述,请各位见谅。
基本布局:一个minsize(800,600)的主form,里边上方有个dock top的panel,下边有个dock bottom的panel,左边有个dock left的panel,右边有个dock fill的panel。右边这个panel里有5个form,主窗口的构造函数内容是(主窗口类是FormMain,5个小form各自有自己的class,同在一个namespace中):formRightMainOptions = new FormRightMainOptions();
formRightMainOptions.TopLevel = false;
formRightMainOptions.Parent = this.panelMainRight;
formRightMainOptions.Dock = DockStyle.Fill;
// some other properties, such as MaxButton/MinButton/FormBorderStyle, are not listed here也就是让这个formRightMainOptions填充到上边提到的dock fill的panelMainRight中。
在窗口刚建立时,formRightMainOptions中的dock top的groupBox的边界显示得很好,在主窗口边缘。当我将主窗口最大化时,groupBox的边界也会随之来到主窗口边缘。但是,当我恢复主窗口为非最大化时,groupBox的边缘就明显没有跟回来,而是超出了主窗口边界,不知道我说明白了吗。。
而且还有个问题,formRightMainOptions的右下角我放了个button,其anchor设置为了bottom,right,将主窗口变大时它可以跟着变动位置到窗口的右下,但是主窗口变小时它的位置就还保持变大后的位置,不会跟着回来,从而超出了主窗口的边界。

解决方案 »

  1.   

    anchor设置为了bottom,right,将主窗口变大时它可以跟着变动位置到窗口的右下,但是主窗口变小时它的位置就还保持变大后的位置,不会跟着回来,从而超出了主窗口的边界。相对于右下角保持相对位置不变
    anchor 设置All估计也会有问题,既然你的窗体大小完全不固定,在InitialComponent()里通过计算来指定好了,虽然麻烦,但是最有效
      

  2.   

    还是听不太明白,你为何不用FlowLayoutPanel控件来布局呢?
      

  3.   

    或者你在窗体的Resize事件中重写控件定位的事件应该也会解决
      

  4.   

    解决了把每个form的AutoSize改为false就可以了
      

  5.   

    顶,自己解决问题的都是未来的MVP呵呵~~~~~~~~这样才能记忆深刻