winform 窗体,
 窗口大小:W:1024 H:768
 自定义控件大小:W:140  H:90
在窗口中需要布置10个自定义控件
求一个算法,让这10个控件根据窗口的大小计算位置,进行排版。

解决方案 »

  1.   

    你这样的话只能先取到当前窗体的宽度,然后根据宽度来分配控件(这样还没有考虑高度,假如超过高度了怎么办?)
    但是也样也和控件大小有关系了,比如同是TextBOx,你显示姓名的控件和显示地址的控件不可能同宽的
    如果是和显示姓名一排的可以放四个,但有显示地址的呢?显然四个是不行的
    这样的话感觉不是很完美,我的界面也是根据字断自动生成的,也是根据界面来规定长度,但是宽度都是一样的,还得手工去调
    只能说是剩下了拖控件的时间
      

  2.   

    使用flowLayoutPanel;控件放在flowLayoutPanel中。
    int fW = 0;
            int fH = 0;
            int pW = 0;
            int pH = 0;        private void Form1_Load( object sender , EventArgs e )
            {
                //setKalendar(DateTime.Now);
                fW = this.Width;
                fH = this.Height;
                pW = this.flowLayoutPanel1.Width;
                pH = this.flowLayoutPanel1.Height;
            }
    private void Form1_SizeChanged( object sender , EventArgs e )
            {
                this.flowLayoutPanel1.Width = pW + ( this.Width - fW );
                this.flowLayoutPanel1.Height = pH + ( this.Height - fH );
            }