控件随窗口的改变而变化

private void Frm_Load(object sender, System.EventArgs e)
        
{
            x
=this.Width ;
            y
=this.Height ;
            setTag(
this);
        }

        
float x=0;
        
float y=0;
        
private void Frm_Resize_1(object sender, System.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 )
            
{
                
//if (con is PictureBox) continue;
                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 );
                }

            }

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值