winform中窗体最大化时 如何使窗体中内容也相应的全屏

来源:互联网 发布:创世传说 知乎 编辑:程序博客网 时间:2024/05/17 22:45
直接上代码,就是这么简单!
public partial class Form1 : Form    {        private void Form1_Load(object sender, EventArgs e)        {            x = this.Width;            y = this.Height;            setTag(this);        }        float x = 0;        float y = 0;        private void Form1_Resize(object sender, EventArgs e)        {            float newx = (this.Width) / x;            float newy = this.Height / y;            setConstrols(newx, newy, this);         }         private void setTag(Control cons)        {            foreach (Control con in cons.Controls)            {                con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;                if (con.Controls.Count > 0)                {                    setTag(con);                }            }        }        private void setConstrols(float newx, float newy, Control cons)        {            foreach (Control con in cons.Controls)            {                string[] mytag = con.Tag.ToString().Split(new char[] { ':' });                float a = Convert.ToSingle(mytag[0]) * newx;                con.Width = (int)a;                a = Convert.ToSingle(mytag[1]) * newy;                con.Height = (int)(a);                a = Convert.ToSingle(mytag[2]) * newx;                con.Left = (int)(a);                a = Convert.ToSingle(mytag[3]) * newy;                con.Top = (int)(a);                Single currentSize = Convert.ToSingle(mytag[4]) * newy;                con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);                if (con.Controls.Count > 0)                {                    setConstrols(newx, newy, con);                }            }        }    }
转自:http://bbs.csdn.net/topics/240062554  hotmail_mk 的回复

0 0
原创粉丝点击