美文网首页
2018-04-12 窗体设计:自动调整控件大小

2018-04-12 窗体设计:自动调整控件大小

作者: 胡諾 | 来源:发表于2018-04-13 15:59 被阅读0次
1、 原始窗体:
2、 现要实现:当拖拽窗体进行伸缩变化时,窗体中包含的所有控件诸如“确定”button随着窗体大小变化。
3、 实现方法步骤:

1)双击窗体添加Load()函数,函数中添加一下代码:

private void Form1_Load(object sender, EventArgs e) {
         this.Resize += new EventHandler(Form1_Resize); //窗体调整大小时引发事件
          X = this.Width; //获取窗体的宽度
          Y = this.Height; //获取窗体的高度
          setTag(this); //调用方法      
}

2)获取控件的width、height、left、top、字体大小的值,添加一下代码:

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);
            }
        }

3)根据窗体大小调整控件大小,添加一下代码:

        private void setControls(float newx, float newy, Control cons)
        {
            //遍历窗体中的控件,重新设置控件的值
            foreach (Control con in cons.Controls)
            {
                string[] mytag = con.Tag.ToString().Split(new char[] { ':' });
                //获取控件的Tag属性值,并分割后存储字符串数组
                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);
                }
            }
        }

4)对窗体添加Resize()函数

void Form1_Resize(object sender, EventArgs e)
        {
            float newx = (this.Width) / X; //窗体宽度缩放比例
            float newy = this.Height / Y;//窗体高度缩放比例
            setControls(newx, newy, this);//随窗体改变控件大小
            this.Text = this.Width.ToString() + " " + this.Height.ToString();
            //窗体标题栏文本
        }

4、 效果图:


本文作者:李俊

<上一篇 目录 下一篇>

相关文章

  • 2018-04-12 窗体设计:自动调整控件大小

    1、 原始窗体: 2、 现要实现:当拖拽窗体进行伸缩变化时,窗体中包含的所有控件诸如“确定”button随着窗体大...

  • Web测试中的界面测试用例设计(3)

    三:界面测试用例的设计方法 (1)窗体 a、窗体大小,大小要合适,控件布局合理; b、移动窗体。快速或慢速移动窗体...

  • WPF之路-常用布局控件

    WPF布局原则 不应显示设置大小 为了布局的稳定性,控件的大小应该可以自动适应容器。如下为新建一个窗体,默认包含一...

  • Android 设置TextView自动调整字体大小

    Android 设置TextView自动调整字体大小 意为:TextView字体大小随着控件的大小变化而变化,An...

  • winform InitializeComponent()函數

    InitializeComponent()方法反映了窗体设计器中窗体和控件的属性。通常不会在这个文件中修改代码。如...

  • 子窗体、主窗体传参

    在主窗体里面操纵子窗体的控件 子窗体 主窗体 主窗体点击事件操作 直接在主窗体里面操纵子窗体的控件,进行一系列操作...

  • 2018-12-04

    TextBox和Button控件 共有属性: Name 窗体或控件名称一个项目中各个窗体、一个窗体上各 个控件的名...

  • 不同窗体间控件的调用

    不同窗体间控件的调用 在被调用窗体的构造方法中接受调用窗体的引用,把调用窗体的控件设置为可见

  • VB实现UDP通信

    新建标准EXE工程 选中窗体,右键,选择添加,选择添加窗体 调整窗口大小和位置 选择工程菜单,选择部件 在Form...

  • C#控件如何随窗体自动缩放

    控件随着窗体缩放设置情况一: 按照上图设置以后,你会发现控件会随着窗体放大缩小而变化。 控件随着窗体缩放设置情况二...

网友评论

      本文标题:2018-04-12 窗体设计:自动调整控件大小

      本文链接:https://www.haomeiwen.com/subject/hfackftx.html