我的form上放了个panel,panel上还有若干个别的控件,当form大小变化时,那个panel大小要随之变换,所以用了它的dock属性,但panel用了dock的话,就不能用resize函数了,那panel上的控件的大小和位置该在哪儿调整呢

解决方案 »

  1.   

    控件的anchor属性,或者在panel父窗体的resize中处理
      

  2.   

    Anchor和Dock是不是不能同时生效啊?我用anchor,结果窗体变大时panel就纵向是拉伸了,可横向还是那么大,变成扁的了,怎么回事?
    还有一点,我其实重写了form_resize函数的,代码如下,可最后panel1的尺寸不是太正确,主要应该是double类型转int类型时的误差,请问大家该怎么解决这个问题啊,先谢谢了
     scaleW = (double)this.Size.Width / (double)form3OrigW;
                    scaleH = (double)this.Size.Height / (double)form3OrigH;                panel1.Size = new Size((int)(panel1OrigW * scaleW), (int)(panel1OrigH * scaleH));
                    panel1.Location = new Point((int)(panel1Location.X * scaleW), (int)(panel1Location.Y * scaleH));
                    
                    panel2.Size = new Size((int)(panel2OrigW * scaleW), (int)(panel2OrigH * scaleH));
                    panel2.Location = new Point((int)(panel2Location.X * scaleW), (int)(panel2Location.Y * scaleH));
                    
                    int i = 0;
                    foreach (Button reader in rdrInPanel1)
                    {
                        reader.Location = new Point((int)(rdrLoc[i].X * scaleW), (int)(rdrLoc[i].Y * scaleH));
                        i++;
                    }