我给界面添加了一个Resize事件,为了让控件随界面等比缩放,但是当我拖放界面后,控件全部消失了,这是什么原因??? 
代码如下,代码很简单,在form上添加了3个button,我只是测试一下Resize的功能,但是有问题,求教
public partial class Form1 : Form
    {
        private List<double> dPresentW = new List<double>();
        private List<double> dPresentH = new List<double>();
        private List<double> dPresentT = new List<double>();
        private List<double> dPresentL = new List<double>();        public Form1()
        {
            InitializeComponent();
            foreach (Control ctl in this.Controls)
            {
                dPresentW.Add((double)ctl.Width / (double)Width);
                dPresentH.Add((double)ctl.Height / (double)Height);
                dPresentT.Add((double)ctl.Top / (double)Top);
                dPresentL.Add((double)ctl.Left / (double)Left);
            }
        }        private void Form1_Resize(object sender, EventArgs e)
        {
            int count = Controls.Count;
            for (int i = 0; i < count; ++i)
            {
                Controls[i].Width = (int)(dPresentW[i] * Width);
                Controls[i].Height = (int)(dPresentH[i] * Height);
                Controls[i].Top = (int)(dPresentT[i] * Top);
                Controls[i].Left = (int)(dPresentL[i] * Left);
            }
        }    }

解决方案 »

  1.   

    设置控件的Dock属性吧,设置成FIll
      

  2.   

    你的意思是只设置dock属性为fill呢,还是还需要我以上的代码然后再设置dock的属性为fill
      

  3.   

    我不知道是否是我本身做的有问题,再说一下,我是单纯的给一个form上添加了3个button,而没有什么panel之类的容器,按照楼上的说法,设为fill后,直接一个button填充了所有的form面板,所以还是没有成功。
      

  4.   

    不是所有控件用dock属性就能解决了的,,用dock的都是充当容器的
    用控件的Anchor属性
      

  5.   

    可以详细说下anchor该设为那几个吗?
      

  6.   

    把Button放到TableLayout中,设置Button的Dock为FILL,TableLayoutFill