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


    代码
            #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
  • 相关阅读:
    Key&Main Window
    ObjectiveC Runtime IV 【使用隐藏的参数】
    JS中的变量作用域
    Git配置
    ObjectiveC Runtime II 【发送消息 vs 调用函数】
    GDB Vs. WinDbg Commands
    mcs51 串口通信 单片机发 pc收
    csharp截屏
    解决WIN7系统中系统文件的“拒绝访问”的方案
    在VC中创建DLL文件的方法步骤
  • 原文地址:https://www.cnblogs.com/linmilove/p/1794735.html
Copyright © 2020-2023  润新知