窗口原大小为610*500,最大化后里面的所有控件都还是原来的大小,不好看。
有没有什么方法能够让窗体里面的控件自适应大小?
根据窗口大小而改变相应的比例?

解决方案 »

  1.   

    在窗口的sizechange事件里修改控件的大小,控件的大小可以跟窗口的大小相关联,用条公式计算.
      

  2.   

    Control.Anchor = ((System.Windows.Forms.AnchorStyles)(System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom|System.Windows.Forms.AnchorStyles.Left|System.Windows.Forms.AnchorStyles.Right));
    设置控件停靠方式,这样就会随着form改变
      

  3.   

    设置Anchor或者Dock可以做到随着Form Size变化控件size也变化。另外,更好的做法是采用FlowLayoutPanel或者TableLayoutPanel之类的Layout容器来做布局,这样所有的都可以自适应大小。
      

  4.   

    1、算是一种偷懒的方法:递归的按比例调整控件和子控件的大小。
       在窗口大小不确定时可以有一定的自适应功能。
       private void RecursiveAdjustLayout(Control root)
    {
       AdjustControl(root); //在AdjustControl()里按比例调整大小和控件的位置
       for ( int i=0; i<root.Controls.Count; i++ )
       {
           RecursiveAdjustLayout(root.Controls[i]);
       }
    }
    2、上面那个效果不是很好。适用于窗口大小不确定时的自适应。
       对于确切知道的窗口大小如1024*768,先用form手动布局,
       获得各控件位置后写一个AdjustControl()精确调整。
      

  5.   

    可以用splitcontainer阿,多用几个,把控件分开放到多个PAnel里,在设置各个控件的anchor就可以了,控件可以局部变化大小的
      

  6.   

    看你是什么控件了
    如果是Container类的用Dock.Fill就可以了,子空间填充父容器
    要是Button,TextBox一类的建议用Anchor调整
      

  7.   

    SizeChange事件的代码   Control.Width = this.Width - WIDTH_SUB;
       Control.Height = this.Height - HEIGHT_SUB;WIDTH_SUB和HEIGHT_SUB是两个常量表示控件与窗体宽度与高度的差
      

  8.   

    设置 Anchor 就可以了