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


    代码
            #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
  • 相关阅读:
    BP神经网络基本原理
    天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能
    LSH算法原理
    数据库索引的作用和长处缺点
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
    Linux makefile 教程 很具体,且易懂
    银行家算法
    HDU 1757 A Simple Math Problem(矩阵高速幂)
    js中substr与substring的差别
    BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解
  • 原文地址:https://www.cnblogs.com/linmilove/p/1794735.html
Copyright © 2020-2023  润新知