日期:2014-05-18  浏览次数:20876 次

C#界面缩放问题
我给界面添加了一个Resize事件,为了让控件随界面等比缩放,但是当我拖放界面后,控件全部消失了,这是什么原因??? 
代码如下,代码很简单,在form上添加了3个button,我只是测试一下Resize的功能,但是有问题,求教。。。
C# code
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);
            }
        }

    }


------解决方案--------------------
设置控件的Dock属性吧,设置成FIll
------解决方案--------------------
楼上正解+1这样就完全按照比例了。
------解决方案--------------------
探讨

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

------解决方案--------------------
探讨

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

------解决方案--------------------
把Button放到TableLayout中,设置Button的Dock为FILL,TableLayoutFill