zoukankan      html  css  js  c++  java
  • 窗体内的控件随窗体的大小改变控件大小

      public Form1()
    
            {
    
                InitializeComponent();
    
                int count = this.Controls.Count * 2+2;
    
                float[] factor = new float[count];
    
                int i = 0;
    
                factor[i++] = Size.Width;
    
                factor[i++] = Size.Height;
    
                foreach(Control ctrl in this.Controls)
    
                {
    
                    factor[i++] = ctrl.Location.X / (float)Size.Width;
    
                    factor[i++] = ctrl.Location.Y / (float)Size.Height;
    
                    ctrl.Tag = ctrl.Size;
    
                }
    
                Tag = factor;
    
            }
    
    
    
            private void Form1_Resize(object sender, EventArgs e)
    
            {
    
                float[] scale = (float[])Tag;
    
                int i = 2;
    
    
    
                foreach (Control ctrl in this.Controls)
    
                {
    
                    ctrl.Left = (int)(Size.Width * scale[i++]);
    
                    ctrl.Top = (int)(Size.Height * scale[i++]);
    
                    ctrl.Width = (int)(Size.Width / (float)scale[0] * ((Size)ctrl.Tag).Width);
    
                    ctrl.Height = (int)(Size.Height / (float)scale[1] * ((Size)ctrl.Tag).Height);  
    
    
    
                    //每次使用的都是最初始的控件大小,保证准确无误。
    
                }
    
            }
  • 相关阅读:
    异常处理
    组合,封装
    自我介绍
    27python更多实例
    28python类代码编写细节
    29python运算符重载
    30python 类的设计
    31python类的高级主题
    32python异常基础
    33python异常编码细节
  • 原文地址:https://www.cnblogs.com/skyhorseyk/p/9264355.html
Copyright © 2011-2022 走看看