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

ExpandedBlockStart.gif 代码
         #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/ssda/archive/2010/08/07/1794735.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值