能够正确调整大小的窗体可以提高您的用户界面的易用性。

此演练演示了如何创建当用户调整窗体大小时按比例调整的布局。 您将使用 TableLayoutPanel 控件实现一个接收联系人信息的数据输入窗体。

本演练涉及以下任务:

  • 创建项目

  • 创建布局面板

  • 设置布局网格

  • 创建“姓名”字段

  • 创建“地址”字段

  • 创建“电话号码”字段

  • 创建“备注”字段

完成这些操作后,窗体应如下所示:

若要复制此主题中的完整代码列表,请参见如何:创建用于数据输入的大小可调的 Windows 窗体。

注意

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置。

系统必备


若要完成本演练,您需要:

  • 足够的权限,以便能够在安装 Visual Studio 的计算机上创建和运行 Windows 窗体应用程序项目。

创建项目


第一步是创建应用程序项目。 使用此项目生成显示数据输入窗体的应用程序。

创建项目

  • 创建名为 DemoDataEntryLayout 的 Windows 应用程序项目。 有关更多信息,请参见如何:创建新的 Windows 窗体应用程序项目。

创建布局面板


下一步是创建包含可调整大小的布局的布局面板。

创建布局面板

  1. 在“窗体设计器”中选择窗体。

  2. 从“工具箱”中将一个 TableLayoutPanel 控件拖到窗体上。

  3. 在“属性”窗口中,将 TableLayoutPanel 控件的 Dock 属性的值更改为 Fill。

  4. 将 ColumnCount 属性的值更改为 4,并将 RowCount 属性的值更改为 6。

设置布局网格


下一步是指定布局网格。 设置 ColumnStyles 和 RowStyles 集合中的属性以确定当窗体的尺寸改变时列和行如何调整大小。

设置布局网格

  1. 单击 TableLayoutPanel 控件的智能标记符号 () 并选择“编辑行和列”以打开“列和行样式”对话框。 有关更多信息,请参见 如何:在 TableLayoutPanel 控件中编辑行和列。

  2. 从“显示”下拉框中选择“列”。

  3. 选择第一列并将其 SizeType 属性的值更改为 Percent。 将“百分比”NumericUpDown 控件的值设置为 25。 此列将容纳 Label 控件。

  4. 选择第二列。 将其 SizeType 属性的值更改为 Percent。 将“百分比”NumericUpDown 控件的值设置为 50。 此列将容纳数据输入字段的 TextBox 控件。

  5. 选择第三列。 将其 SizeType 属性的值更改为 Percent。 将“百分比”NumericUpDown 控件的值设置为 25。 此列将容纳 Label 控件。

  6. 选择第四列。 将其 SizeType 属性的值更改为 Percent。 将“百分比”NumericUpDown 控件的值设置为 50。 此列将容纳数据输入字段的 TextBox 控件。

  7. 从“显示”下拉框中选择“行”。

  8. 对于前面五行,将 SizeType 属性的值设置为 Absolute,并将“绝对”NumericUpDown 控件的值设置为 28。 对于第六行,将 SizeType 属性的值设置为 Percent,并将“百分比”NumericUpDown 控件的值设置为 80。

  9. 单击“确定”接受更改。

用控件填充该布局


现在可以使用控件填充布局了。 此数据输入窗体是用于联系人信息的,所以它有“名”字段、“姓”字段、“地址”字段、“电话号码”字段和“备注”字段。 下面的列表显示了创建这些控件的顺序:

  1. “姓名”字段

  2. “地址”字段

  3. “电话号码”字段

  4. “备注”字段

创建“姓名”字段


姓名输入字段置于 TableLayoutPanel 控件的第一行。 它们由 Label 控件和 TextBox 控件(用于输入名)以及 Label 控件和 TextBox 控件(用于输入姓)组成。

创建“姓名”字段

  1. 将一个 Label 控件从“工具箱”拖到 TableLayoutPanel 控件中的第一个单元格中。

  2. 在“属性”窗口中,将 Label 控件的 Anchor 属性的值设置为 Right。

  3. 将 AutoSize 属性的值设置为 true。

  4. 将 Text 属性的值设置为“名”。

  5. 将一个 TextBox 控件从“工具箱”拖到第一行的第二单元格中,位于 Label 控件旁边。

  6. 将 TextBox 控件的 Anchor 属性的值设置为 Left、Right。

  7. 将一个 Label 控件从“工具箱”拖到第一行的第三个单元格中。 将 Label 控件的 Anchor 属性的值设置为 Right。 将 AutoSize 属性的值设置为 true。 将 Text 属性的值设置为“姓”。

  8. 将一个 TextBox 控件从“工具箱”拖到第一行的第四个单元格中。 将 TextBox 控件的 Anchor 属性的值设置为 Left、Right。

创建“地址”字段


“地址”字段占用第二、三、四行。 因为街道地址可能很长,所以 Address1 和 Address2 字段跨三列。

创建“地址”字段

  1. 将一个 Label 控件从“工具箱”拖到第二行的第一个单元格中。

  2. 在“属性”窗口中,将 Label 控件的 Anchor 属性的值设置为 Right。 将 AutoSize 属性的值设置为 true。 将 Text 属性的值设置为“地址 1”。

  3. 将一个 TextBox 控件从“工具箱”拖到第二行的第二单元格中,位于 Label 控件旁边。

  4. 将 TextBox 控件的 Anchor 属性的值设置为 Left、Right。

  5. 将“ColumnSpan”属性的值设置为 3。 此属性由 TableLayoutPanel 控件提供。 有关所提供的属性的更多信息,请参见扩展程序提供程序概述。

  6. 对第三行重复步骤 1 到 5。 将 Label 控件的 Text 属性的值设置为“地址 2”。

  7. 将一个 Label 控件从“工具箱”拖到第四行的第一个单元格中。

  8. 将 Label 控件的 Anchor 属性的值设置为 Right。 将 AutoSize 属性的值设置为 true。 将 Text 属性的值设置为“城市”。

  9. 将一个 TextBox 控件从“工具箱”拖到第四行的第二单元格中,位于 Label 控件旁边。

  10. 将 TextBox 控件的 Anchor 属性的值设置为 Left、Right。

  11. 将一个 Label 控件从“工具箱”拖到第四行的第三个单元格中。

  12. 将 Label 控件的 Anchor 属性的值设置为 Right。 将 AutoSize 属性的值设置为 true。 将 Text 属性的值设置为“州/省”。

  13. 将一个 ComboBox 控件从“工具箱”拖到第四行的第四个单元格中。

  14. 将 ComboBox 控件的 Anchor 属性的值设置为 Left。 将 FormattingEnabled 属性的值设置为 true。

创建“电话号码”字段


“电话号码”字段占用第五行。 若要确保用户仅输入有效电话号码,请使用 MaskedTextBox 控件来实现。

创建“电话号码”字段

  1. 将一个 Label 控件从“工具箱”拖到第五行的第一个单元格中。

  2. 在“属性”窗口中,将 Label 控件的 Anchor 属性的值设置为 Right。 将 AutoSize 属性的值设置为 true。 将 Text 属性的值设置为“工作电话”。

  3. 将一个 MaskedTextBox 控件从“工具箱”拖到第五行的第二个单元格中。

  4. 将 MaskedTextBox 控件的 Anchor 属性的值设置为 Left。

  5. 单击 MaskedTextBox 控件上的智能标记 () 以打开 Mask 编辑器。

  6. 在“输入掩码”对话框中选择“电话号码”掩码。 单击“确定”。

  7. 对“家庭电话号码”字段重复步骤 1 到 5。 将 Text 属性的值设置为“家庭电话”。

创建“备注”字段


最后一个字段占用第六行。 它用于输入备注并且允许任意形式的文本输入。

创建“备注”字段

  1. 将一个 Label 控件从“工具箱”拖到第六行的第一个单元格中。

  2. 在“属性”窗口中,将 Label 控件的 Anchor 属性的值设置为 Top、Right。 将 AutoSize 属性的值设置为 true。 将 Text 属性的值设置为“备注”。

  3. 将一个 RichTextBox 控件从“工具箱”拖到第六行的第二个单元格中。

  4. 将“ColumnSpan”属性的值设置为 3。

  5. 将 RichTextBox 控件的 Dock 属性的值设置为 Fill。

完成布局网格设置


最后一步是完成布局网格设置。 第一列和第三列应设置为 AutoSize。 由于已在这些列中放置了控件,因此在设计时这些列可见。

设置布局网格

  1. 选择 TableLayoutPanel 控件并单击其智能标记标志符号 ()。 选择“编辑行和列”打开“列和行样式”对话框。 有关更多信息,请参见 如何:在 TableLayoutPanel 控件中编辑行和列。

  2. 从“显示”下拉框中选择“列”。

  3. 选择第一列和第三列并将 SizeType 属性的值更改为 AutoSize。

  4. 单击“确定”接受更改。

检查点


至此,可以运行应用程序以检查窗体的动态布局。

检查窗体的布局

  • 生成并运行该项目。 当窗体出现时,增大和缩小该窗体。

 注意

控件将按比例调整大小以填充可用空间。

后续步骤


注意,您可以创建实现动态布局的窗体,使窗体适于本地化。 有关更多信息,请参见演练:创建可根据本地化需要调整比例的布局。

转载于:https://www.cnblogs.com/txw1958/archive/2012/07/30/2615656.html

创建可按比例调整的布局的 Windows 窗体相关推荐

  1. Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)

    目录 1.Qt Designer调整组件布局比例 2.addStretch()函数调整组件布局比例 在一个布局容器中,有时可能需要调整各组件的显示比例,让界面达到更美观效果. 调整组件布局比例有两种办 ...

  2. matplotlib之pyplot模块——调整子图布局(subplots_adjust、tight_layout)

    在pyplot模块中,与调整子图布局的函数主要为subplots_adjust和tight_layout,其中subplots_adjust是修改子图间距的通用函数,tight_layout默认执行一 ...

  3. 每年考研计算机专硕和学硕报比例,各院校研招计划发布 专硕与学硕比例调整...

    离2013研究生考试还有3个多月,考试已进入倒计时阶段.据悉,研究生网上报名将于10月上旬开始,今年很多高校的专业硕士比例进一步提高,而学术硕士比例则稳中有降,但因为学费等原因,很多考生依然钟情学术硕 ...

  4. python opencv 等比例调整(缩放)图片分辨率大小代码 cv2.resize()

    # -*- coding: utf-8 -*- """ @File : 200113_等比例调整图像分辨率大小.py @Time : 2020/1/13 13:38 @A ...

  5. (2.1)HarmonyOS鸿蒙Ability创建,XML和Java页面布局UI

    鸿蒙UI中,提供了两种编写布局的方式: ①在XML中声明UI布局 ②在Ability代码中直接通过Java创建布局 这两种方式创建出的布局没有本质差别,但是XML方式较为方便简单. 在XML文件中布局 ...

  6. html5图片比例控制,按比例调整图像大小以适应HTML5画布

    我正在尝试编写一个jQuery插件,该插件将具有与Zazzle.com上基于Flash的产品编辑器类似的功能.我需要知道的是,使用context.drawImage()画布功能,我可以插入图像并调整其 ...

  7. 【转载】Windows 10系统默认将画面显示比例调整至125%或150%,最高分辨率已经达到3840×2160(4K)这一级别。...

    高分屏打开软件界面模糊?不会设置太浪费 2017-08-31 19:37 抹又重彩 现在有好多朋友都喜欢并买了高分屏笔记本电脑.高分屏笔记本就是配有高分辨率屏幕的笔记本.为了给用户带来更好的视觉体验, ...

  8. 使用CSS按比例调整图像大小? [重复]

    本文翻译自:Resize image proportionally with CSS? [duplicate] This question already has an answer here: 这个 ...

  9. 用python按比例调整图片尺寸

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.按比例对图片进行缩放 使用PIL对图片进行处理 总结 前言 提示:这里可以添加本文要记录的大概内容: 最近对PIL ...

最新文章

  1. php 面试mysql,mysql中优化必读
  2. [Tracking] KCF + KalmanFilter目标跟踪
  3. linux获取最高权限并取消_Linux 更新glibc 漏洞 可以获取最高权限
  4. 2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析
  5. RTC-IC-PCF2129
  6. moldflow2018安装教程
  7. python歌星大奖赛_在歌星大奖赛中,有10个评委为参赛选手打分,分数为1到100分。...
  8. 麦克风增强软件_唱吧麦克风不会唱歌用它唱都好听,《向往的生活》同款麦克风...
  9. tp5 php文件做模板模板,TP5视图和模板
  10. 评价一个推荐系统的指标详解!
  11. 录音文件下载_轻便简洁的电脑录音软件,Moo0录音专家中文免费版,大小不过3M...
  12. Creator技能按钮冷却效果
  13. MATLAB实现规范化(normalize)数据的函数实现
  14. 数据备份与数据还原 ----数据库的异地容灾策略
  15. 淘宝最基础的优化:标题优化
  16. TestNG开源插件Arrow介绍
  17. 如何从一个空有上进心的人-变成行动上的巨人?
  18. 【洛谷P3014】Cow Line
  19. rap2接口mock数据初始值和常用属性设置
  20. 基于asp.net331婚纱影楼管理系统

热门文章

  1. Linux下各种常见环境变量的配置
  2. Unity3D学习笔记(一) 模型和贴图导入学习
  3. Access数据库访问助手类
  4. 哄骗DB2look 重新创立优化器访问筹划(3)
  5. zigbee vs 433
  6. 第7章:Kubernetes存储
  7. Linux 查询 OS、CPU、内存、硬盘信息
  8. python 判断类是否存在某个属性或方法
  9. 给运维工程师的Cheatsheets! 《Shell脚本速查手册》免费下!
  10. 居然之家:核心业务系统全面上云,采用PolarDB替代传统商业数据库