窗体控件随窗体大小改变(包括字体大小)

代码
        #region 窗体控件随窗体大小改变(包括字体大小)
        
//在窗体加载事件中写入下面的三行代码
        
//this.Resize += new EventHandler(Form1_Resize);
        
//X = this.Width;
        
//Y = this.Height;
        
//setTag(this);

        
private float X;
        
private float Y;

        
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 setControls(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)
                {
                    setControls(newx, newy, con);
                }
            }

        }
        
void Form1_Resize(object sender, EventArgs e)
        {
            
// throw new Exception("The method or operation is not implemented.");   
            float newx = (this.Width) / X;
            
//  float newy = (this.Height - this.statusStrip1.Height) / (Y - y);   
            float newy = this.Height / Y;
            setControls(newx, newy, 
this);
            
this.Text = this.Width.ToString() + " " + this.Height.ToString();

        }
        
#endregion
原文地址:https://www.cnblogs.com/linmilove/p/1794735.html