zoukankan      html  css  js  c++  java
  • 窗体控件随窗体大小改变(包括字体大小)

    代码
            #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
  • 相关阅读:
    svn的revert、checkout、clean up、setting
    jsonp跨域原理
    王亚伟北大演讲:一切通胀问题都是货币问题(全文)
    string <-> wstring
    点在多边形内 经典算法(转)
    不可不表的OSG智能指针之强指针与弱指针 《转载》
    一个shell脚本给客户使用服务器生成一个序列号
    Rsync(远程同步): linux中Rsync命令的实际示例
    一个 rsync同步文件脚本
    用UltraISO制作CentOS U盘安装盘
  • 原文地址:https://www.cnblogs.com/linmilove/p/1794735.html
Copyright © 2011-2022 走看看