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
  • 相关阅读:
    JVM简单入门
    10 张图聊聊线程的生命周期和常用 APIs
    Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Axios前后端分离模式下无感刷新实现JWT续期
    ueditor 插入视频代码解析
    CentOS下添加新硬盘并分区格式化的详细步骤
    Java 8 stream
    crontab命令详解
    计算机网络自顶向下学习杂记
    nginx安装
    js识别PC和H5
  • 原文地址:https://www.cnblogs.com/linmilove/p/1794735.html
Copyright © 2011-2022 走看看