winform 入门篇第五章 -- 控件的布局

本文详细介绍了控件在窗口中的布局方法,包括可视化拖放、手动计算位置以及使用布局器自动布局。着重讲解了手工布局、Anchor和Dock属性在适应窗口大小变化中的作用,以及Panel的停靠和嵌套布局技巧。
摘要由CSDN通过智能技术生成

控件的布局

控件的布局:当窗口中有多个控件时,如何决定每个控件的位置和大小。
布局的方式:

  1. 可视化布局:在设计器里拖放操作
  2. 手工布局:用代码计算每个控件的位置
  3. 使用布局器:用布局器自动布局

演示: 添加几个控件,进行可视化布局。。
按钮,Button

文本框,TextBox

图片框,PictureBox
在这里插入图片描述

为PictureBox添加背景颜色
在这里插入图片描述

直接使用鼠标拖拽方式布局

在这里插入图片描述

按住ctrl 同时选中两个控件,进行对其方式排布选择

在这里插入图片描述

运行程序

在这里插入图片描述

本质上,是在窗口初始化的时候,使用代码设置了每控件的位置和大小

例如,在Form1.Designer.cs 中,
button1.Location = new Point(375, 12);
button1.Size = new Size(75, 23);

要点与细节

1当窗口改变大小时,布局并不能够自动适应所以,此种布局只适用于窗口大小固定不变的情况

在这里插入图片描述
控件大小没有随着,窗体的大小改变而自动变换

手工布局

手工布局:用代码计算每个控件的位置
重写 OnLayout方法
override void OnLayout (LayoutEventArgs levent)
{
}
当窗口大小改变时,会自动调用这个方法重新布局

1.依然添加上述三个控件

在这里插入图片描述
代码
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

演示:在窗口中添加几个控件,并实现手工布局。

其中,窗口的大小:
Size:窗口总大小(含标题栏和边框)
ClientSize:仅窗口客户区的大小

要点与细节

1 TextBox : AutoSize = false否则它会自己计算所需的大小,参考图文教程
2 区分窗口的 Size 和 ClientSize
3 窗口的自适应 : 当窗口大小变化时,会自动调用 OnLayout() 方法
思考:谁调用了这个方法?是系统框架自动调用的

Anchor

控件的两个通用的布局属性:

Anchor:锚定,将控件固定于某个位置
Dock:停靠,将控件停靠在一侧或中央

本节介绍 Anchor 用法

在这里插入图片描述

设置一个控件的Anchor为TopIRight
当窗口大小改变时,该控件锚定于窗口的右上角即,与父窗口的上边距Top 和右边距 Right 保持不变(无论用户怎样调节按钮,都位于右上角)

右上角

选中为灰色,取消为白色
在这里插入图片描述
运行程序,改变窗体大小,按钮总是保持右上角不变
在这里插入图片描述

在这里插入图片描述

水平拉伸

锚定于上边缘,水平拉伸

  • Anchor = Top I Left l Right
    在这里插入图片描述

运行
在这里插入图片描述
在这里插入图片描述

水平居中

锚定于上边缘、水平居中-水平居中

  • Anchor = Top I Left I Right
    1.先把按钮居中,选中按钮,选择格式
    在这里插入图片描述
  1. 设置Anchor
    在这里插入图片描述
    运行测试,此时他是停靠在上边缘的位置
    在这里插入图片描述
    在这里插入图片描述

拉伸

-Anchor = Top, Right l Bottom l Left

在这里插入图片描述
就是一个全面拉伸的效果

水平,垂直居中

-水平居中,垂直居中
-Anchor: None

先设置垂直对齐
在这里插入图片描述
在这里插入图片描述

Dock

Dock:停靠,将控件停靠在一侧或中央
上ToP
下 Bottom
左 Left
右 Right
中 Fill
无 None
在这里插入图片描述

演示:Panel, 面板

1 添加一个Panel,停靠在上侧
在这里插入图片描述

选择top
在这里插入图片描述
添加背景色
在这里插入图片描述

2 添加一个Panel,停靠在左侧
在这里插入图片描述

3添加一个PictureBox,依靠在中央

在这里插入图片描述
运行项目,改变窗口大小的时候,控件也相应改变

依靠于左右两侧时,可以调整宽度;上下两侧时,可以调整高度。

布局的嵌套

实际的项目中,界面布局可能有多个层次
比如,
一个Panel内部可能还会添加多个控件

在这里插入图片描述

要点与细节

1 当设置 Dock 属性时,Anchor属性无效,不能同时使用

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值