美文网首页初见熊爸的学习时间
WinForm入门(二) 布局相关

WinForm入门(二) 布局相关

作者: 熊爸天下_56c7 | 来源:发表于2020-06-16 21:58 被阅读0次

    一. 自适应布局

    窗口在尺寸变化时,会调用OnLayout方法, 所以 , 在form1.cs文件里重写OnLayout方法即可实现自适应
    在OnLayout方法中,我们获取一下窗口的宽度和高度,根据窗口的宽度和高度重新设定控件的位置和尺寸

    注意: 1. Size是指整个窗口的大小, ClientSize是窗口的用户区域大小
    2.有些控件的尺寸是被锁住的,比如textBox的高度,

    如下例:

    可以看到窗口里的三个控件都随着界面改变位置和大小

    下为form1.cs的代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            protected override void OnLayout(LayoutEventArgs levent)
            {
                base.OnLayout(levent);//调用父类的onlayout
                int w = this.ClientSize.Width;
                int h = this.ClientSize.Height;
    
                textBox1.Location = new Point(0, 0);
                textBox1.Width = w - 80;
                textBox1.Height = 22;
                button1.Location = new Point(w - 80, 0);
                button1.Width = 80;
                button1.Height = 22;
                pictureBox1.Location = new Point(0, 22);
                pictureBox1.Width = w;
                pictureBox1.Height = h - 22;
            }
        }
    }
    

    二. 锚点固定

    每个控件都有一个通用属性Anchor (锚点)

    也可以实现拉伸的效果:

    也可以实现居中效果:

    也可以实现水平竖直同时居中:

    也可以实现平铺效果:

    三. Dock栏

    用dock方式设置了一个典型的布局

    注意:锚点和Dock不能同时设置

    四. 使用别人的自定义布局器

    然后拖进窗口就可以用了

    五. 流式布局

    winform自带了流式布局面板,拖入即可用

    注意:flowLayoutPanel至少一个面板,它并不是一个布局器,但是它内部默认实现了一个布局器

    六. 表格布局

    winform自带了表格布局面板,拖入即可用

    可以右键添加行列

    也可以在属性里设置

    点击这个按钮可以打开行列的具体设置

    相关文章

      网友评论

        本文标题:WinForm入门(二) 布局相关

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