当前位置: 首页 > news >正文

第二阶段Winform-4:MDI窗口,布局控件,分页

1_MDI窗口

(1)MDI是指将多控件窗体在同一窗体中打开,可以设置重叠打开,平捕打开等,MDI窗体(Multiple-Document Interface,多文档界面)用于同时显示多个文档。在项目中使用MDI窗体时,通常将一个MDI窗口窗体作为父窗体,父窗体可以将多个子窗体包容在它的工作区之中。

(2)

属性
IsMdiContainer设置窗体是否为多文档窗体
LayoutMdi()设置子窗体的排列方法Cascade:层叠排 TileHorizontal:水平平铺 TileVertical:垂直平铺
MdiChildren所有的子窗体 是一个Form数组
form.GetType()获取form的类型

(3)

private void 打开窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{Child1 child1=new Child1();child1.MdiParent= this;//MDI父窗体child1.Show();Child2 child2 = new Child2();child2.MdiParent = this;child2.Show();
//设置子窗体的排列方法/* public enum MdiLayout{Cascade, //层叠排列TileHorizontal, //水平平铺TileVertical, //垂直平铺ArrangeIcons}*/LayoutMdi(MdiLayout.TileVertical);
}private void OpenChileForm(Form childForm)
{//this.MdiChildren 所有的子窗体 是一个Form数组foreach (Form form in MdiChildren){//form.GetType()获取form的类型,是否与child2相等,相等说明已经存在child2,不需要再次打开if (form.GetType() == childForm.GetType()){//给子窗体焦点form.Activate();return;}}//相等说明不存在child2,需要再打开childForm.MdiParent = this;childForm.Show();}

2_页面布局

(1)窗口样式的属性:可以用来更改图标、最大化窗口透明度

属性说明
Icon更改图标样式(左上角图标)
MaximizeBox:true;显示右上角最大化按钮
MinimizeBox:true;显示右上角最小化按钮
ShowInco:true;显示左上角小图标
ShowInTaskbar:ture;窗体显示在任务栏
TopMost:ture;窗口置顶显示
Opacity:100%整个窗口透明度

(2)窗体布局的属性:用来改变窗体的大小以及启动程序后窗体的显示位置

属性说明
AutoScroll:true/false;如果控件超出窗口是 否自动显示滚动条
AutoSize:true/false;窗口的范围是否会超出控件的大小
MaximumSize:0,0;窗口可以拖曳的最大的大小
MinimumSize:0,0;窗口可以拖曳的最小的大小
Size:300,300;窗口打开时默认的大小
StartPosition:centerScreen;窗口打开时默认桌面位置,居中
WindowState:Maximized;默认打开窗口最大化。

3_布局控件

(1)流式布局(FlowLayoutPanel):这种布局管理器允许控件按照指定的方向(水平或垂直)自动排列。当控件数量增加或减少时,它们会自动填充可用的空间,从而形成流式布局。

https://www.yisu.com/ask/37648663.html

设置 流动方向   FlowDirection=   LeftToRight(默认的) 从左到右  |  TopDown  从上到下  RightToLeft 从右到左  ButtonUp  从下到上
​
换行模式 WrapContents =true 自动换行   |false 不换行

(2)网格布局(TableLayoutPanel)

TableLayoutPanel 控件可以创建一个网格,其中的单元格可以动态地调整大小以适应窗体或容器的大小变化。你可以在网格中放置控件,并指定它们所在的行和列。

【愚公系列】2023年11月 Winform控件专题 TableLayoutPanel控件详解-腾讯云开发者社区-腾讯云

(3)面板(Panel) SplitContainer

虽然面板本身不是一个布局管理器,但它可以作为容器使用其他布局管理器。例如,你可以在面板中使用流式布局或网格布局来组织内部的控件。

(4)分组 (GroupBox)

GroupBox 控件可以用来将一组相关的控件组合在一起,并提供一个标题。它也可以作为布局容器,通常会结合其他布局管理器使用。 自适应布局:

为了使控件能够根据窗体大小自动调整,你可以使用 Dock 属性来让控件填满整个容器(如窗体或面板),或者只占据容器的一侧。

4_分页 (TabControl)

(1)自定义布局(了解)

开发者也可以通过重写控件的 OnLayout 方法来实现自定义的布局逻辑,但这需要更多的编程技巧和对 WinForms 绘制周期的理解

(2)布局属性

属性说明
Anchor锚定属性,设置一个控件边缘锚定状态,默认为左上锚定
Dock依靠属性,设置控件本身靠父容器控件的那个边缘依靠
Padding控件本身内的控件距离边缘的距离
Migrain距离周边控件的距离
AutoSize是否是自动适应大小
AutoSizeMode当AutoSize=true时有效,是控件的自动适应大小的模式,有只增的,有又增又减的

http://www.dtcms.com/a/344183.html

相关文章:

  • 3.4 缩略词抽取
  • 企业级 AI 智能体安全落地指南:从攻击面分析到纵深防御体系构建
  • FileCodeBox 文件快递柜 一键部署
  • 获取后台返回的错误码
  • 如何使用命令行将DOCX文档转换为PDF格式?
  • Linux应用软件编程---网络编程1(目的、网络协议、网络配置、UDP编程流程)
  • Matplotlib 可视化大师系列(八):综合篇 - 在一张图中组合多种图表类型
  • 2.4G和5G位图说明列表,0xff也只是1-8号信道而已
  • QT QImage 判断图像无效
  • 高通平台WIFI学习-- 基于高通基线如何替换移植英飞凌WIFI芯片代码
  • mysql编程(简单了解)
  • 【Android】include复用布局 在xml中静态添加Fragment
  • 计数组合学7.20(平面分拆与RSK算法)
  • [测试技术] 接口测试中如何高效开展幂等性测试
  • pthon实现bilibili缓存视频音频分离
  • Redis内存碎片深度解析:成因、检测与治理实战指南
  • K8s存储类(StorageClass)设计与Ceph集成实战
  • 为什么应用会突然耗尽所有数据库连接
  • 智慧清洁时代来临:有鹿机器人重新定义城市清洁标准
  • 【数据结构】B 树——高度近似可”独木成林“的榕树——详细解说与其 C 代码实现
  • python selenium+pytest webUI自动化基础框架
  • 去中心化身份--改变格局的关键
  • 图数据库(neo4j)基础: 分类/标签 节点 关系 属性
  • 整数规划学习总结
  • 为什么给数据表加了索引,写入速度反而变慢了
  • 数据库原理及应用_数据库基础_第2章关系数据库标准语言SQL_数据查询(3)连接查询
  • 基于Python/django的仓库库存管理系统#基于Python的仓库管理系统#基django的J进销存管理系统
  • 力扣热题之贪心算法
  • halcon算子—gen_rectangle2和gen_rectangle1区别
  • Java泛型深度解析:从基础语法到高级应用