Winform界面开发教程 - 如何对应用程序界面的组织布局

2023-05-16

在设计界面的时候,不管是在Web端,还是在WinForm端,或者是WPF或者移动界面等应用上,我们对界面的组织布局,一直是比较有趣的话题,而组织界面的好坏从用户的感受来看,可以提供程序可使用性高低,也体现了开发者的开发界面的功力。良好的界面布局,可以使得我们组织内容更加合理,也更加美观。本篇随笔主要罗列我自己在开发Winform界面的时候,对界面的组织布局的一些小小案例和心得。

界面的组织布局,我这里分为了三个部分,一个是主界面组织布局、列表界面组织布局、新增编辑界面组织布局。

点击获取WinForm界面开发工具

一、主界面组织布局

主界面的组织布局,主要就是应用多窗体的布局方式,一般可以考虑使用多文档容器界面,这种也是常规的方式;或者可以考虑基于用户控件的变化实现同一个面板显示不同的控件内容。

如早期的WinForm,我使用默认样式的WinForm界面,布局采用控件"WeifenLuo.WinFormsUI.Docking"来承载窗体界面内容,如下所示。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集1

Winform界面开发教程 - 如何对应用程序界面的组织布局图集2

Winform界面开发教程 - 如何对应用程序界面的组织布局图集3

前者也主要是使用多文档的方式来处理不同窗体的界面显示,随着时间的推移,后来逐渐引入了DevExpress的界面套件的方式来做界面,这个界面控件可以实现更加丰富的界面效果,而以界面代码生成工具(代码生成工具Database2Sharp)生成列表和编辑界面后,调整更加方便,因此主要的WinForm界面前端就是使用DevExpress的方式来处理,使用DevExpress可以使用Ribbon窗体,也能够很好的支持多文档的界面,因此主界面的效果还是更胜一筹。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集4

Winform界面开发教程 - 如何对应用程序界面的组织布局图集5

Winform界面开发教程 - 如何对应用程序界面的组织布局图集6

Winform界面开发教程 - 如何对应用程序界面的组织布局图集7

这些主界面,后来基本上都是沿袭一致的界面呈现方式,使用了RibbonForm和树列表等展示内容,列表界面部分可以使用分页控件统一呈现,实现比较统一的界面效果。

二、列表界面组织布局

上面的内容,我们主要介绍了主界面的组织方式,一般主界面是多文档界面,因此列表界面也会最终展示在主界面框架上的。一般来说,我们展示常规内容的时候,分为列表内容和明细显示界面,也就是列表内容分页展示数据库里面的记录信息,而我们查看明细界面内容的时候,就是显示单条记录的详细内容。

如对于列表内容的展示,一般展示效果如下所示,主要展示数据库里面的二维表信息。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集8

有时候列表查询的字段不够的时候,我们通过列表的高级查询进行补充这个短板,以便对于表有大量字段的时候的,对一些不常见的字段进行高级查询操作。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集9

但是一旦列表内容比较多,我们如果需要定位不同的筛选信息的时候,如果仅仅通过一些查询字段的查询,也不是那么友好。因此可能引入一些树形列表来区分不同的内容。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集10

通过这些列表展示的方式,我们可以进一步细化内容的展示,如权限系统的内容展示,通过对用户组织架构和角色的区分,我们可以快速定位系统用户,也可以通过查询字段进行查询,两相结合更加方便使用。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集11

字典模块内容展示,通过不同字典大类的树形列表展示,可以使得我们过滤字典信息更加方便。

而角色管理者摒弃了传统二维表的方式展示数据,通过树列表控件、表单信息和选项卡信息,更好维护角色数据的处理。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集13

对于客户关系管理系统的客户信息的列表界面,这个界面对客户信息的不同属性进行树形列表展示,可以使得定位客户信息更加精确化,更加友好。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集14

以及对一些特定范畴的数据统一管理,可以结合树结构的控件展示,处理起来更方便合理。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集15

另外,有些情况下,我们需要考虑在列表界面上展示主从表信息,那么也可以利用DevExpress的列表控件来实现效果,如下所示。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集16

三、新增、编辑界面组织布局

除了列表界面,另外一个就是对数据的明细展示界面了,这个界面内容可以更加多元化,如在里面承载各种控件,如文本、日期、图片、下拉列表、树形列表,以及我们自定义的一些控件,如对于附件的通过管理展示控件。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集17

有时候,明细内容还涉及到一些主从表明细的录入,如下所示是主从表明细内容直接录入的案例。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集18

Winform界面开发教程 - 如何对应用程序界面的组织布局图集19

如果明细内容较多,我们可以考虑使用选项卡的方式来维护数据,通过选项卡把不同类别的数据区分管理,如下面客户基本资料就是一个案例。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集20

后者系统用户信息的展示也是基于同样的理念。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集21

不过如果对于需要集中展示明细信息外,以及整合相关的记录信息,那么一两个选项卡肯定不够,如下面案例的人员基本信息的展示,除了展示自身的基础信息外,也把一些人员关联的信息一并展示,那么需要分为很多选项卡来容纳这些信息,但是太多又会导致我们的界面拥挤,因此可以在选项卡后面添加一个配置按钮,使得用户可以方便维护自己感兴趣的选项卡内容。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集22

不过如果内容还是很多,我们如果还需要精确的分开不同部分的内容,我们也可以考虑下面一种方案。

如对于胶质瘤的病人资料,我们基础信息这么展示,虽然内容不少,但是还是比较合理。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集23

但是,如果对于信息病理内容很多,如果一股脑的展示在一个内容页面上,肯定比较难看,而且也不好维护数据,如下是不好的案例展示。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集24

合理的方式是引入选项卡或其他区分方式,我这里使用了一种不一样的方式,就是通过结合树列表和用户控件的方式,实现一个选项卡里面,对不同区域内容的展示和维护,这样录入界面和定位不同部分的数据也显得更加方便得体。

下面是对于病人资料内容展示的较为合理的案例。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集25

对于一个病人,不同的属性对应不同的图片附件信息,我们可以统一区分管理,如下所示。

Winform界面开发教程 - 如何对应用程序界面的组织布局图集26

以上就是对于主界面界面、列表界面、明细编辑界面的几种界面案例的分析,我们一般在开发的时候,往往都是先使用代码生成工具(我的代码生成工具Database2Sharp),统一生成标准的列表界面,和明细展示的编辑界面,然后在对它进行一定的润色和修改,如调整字典下拉列表类型,增加一些树形列表,调整不同的选项卡展示内容,增加附件管理控件,增加一些特殊的界面效果,只有在一些特殊的情况下,我们需要彻底重新构建明细界面展示。

以上所有案例都是我在WinForm开发的时候,逐步形成一些经验或者布局改变的思路,当然有些也是一而再,再而三的优化界面,从而达到更好的显示和处理效果,希望大家喜欢,也欢迎多提意见。

DevExpress WinForm界面控件| 下载试用

DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

本文转载自:博客园 - 伍华聪


DevExpress技术交流群4:715863792      欢迎一起进群讨论

更多DevExpress线上公开课、中文教程资讯请上中文网获取

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Winform界面开发教程 - 如何对应用程序界面的组织布局 的相关文章

  • 信息化VS数字化

    1 信息化更偏系统建设 xff0c 数字化更偏业务 2 信息化更偏稳态 xff0c 数字化更偏敏态变革 3 信息化更偏流程管理 xff0c 数字化更偏业务赋能 4 信息化更偏流程 xff0c 数字化更偏数据 5 信息化是管理视角 xff0c
  • ?跟谁学_极简英语——公开课01作业

    作业 xff1a 将下列句子的六成分用删除线划掉 xff0c 并翻译出来 1 I hava many letters to write 2 We met a group of pupils 小学生 returning from school
  • ?跟谁学_极简英语——公开课02作业

    作业 xff1a 找出句子的悬挂结构 xff0c 并翻译句子 1 Lin Tao a 14 yeas old schoolboy still didn t show up at school 2 I play tennis with my
  • grafana如何修改默认端口【3000】

    grafana修改默认端口为80后 xff0c 启动会报 bind permission denied 解决方法 xff1a xff08 三种方式 xff09 授予grafana二进制权限 xff08 推荐使用 xff09 span cla
  • 分享【免费】【英语听力】&【背单词】练习网站和微信小程序 博主:杨中科

    内容丰富 xff0c 贴近实战 xff0c 值得一试 英语听力 xff1a https www youzack com 背单词 xff1a https bdc youzack com Recitation Home ChooseDictio
  • connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    docker 守护进程未启动 xff0c 无法使用docker命令 span class token punctuation span root 64 grafana253 span class token punctuation span
  • Win10上Docker无法正常启动 出现install WSL2 kernel update的情况

    文章目录 一 情况描述 二 解决方法 2 1检查自己的Win10版本 2 2下载插件 三 最终效果 写在最后 一 情况描述 当装完docker之后 xff0c 系统提示Windows重新启动 xff0c 作者就重启系统准备使用docker
  • 【JVM规范】2.5.JVM运行时数据区 Run-Time Data Areas

    2 5 运行时数据区Run Time Data Areas JVM为程序执行定义了不同的运行时数据区 xff08 run time data areas xff09 一部分运行时数据区在JVM启动时创建 xff0c JVM退出时被销毁 另一
  • for in遇到的bug

    项目场景 xff1a 由于ie不兼容getElmentsByClassName获取元素 xff0c 所以我自己封装该方法 xff1a ie支持ID与TagName获取元素 问题描述 xff1a 提示 xff1a 这里描述项目中遇到的问题 x
  • 使用C#进行点对点通讯和文件传输(发送接收部分)

    上面介绍了通讯的基类 xff0c 下面就是使用那个类进行发送和接收的部分 xff1a 二 发送部分 xff1a 发送咱们使用了多线程 xff0c 可以同时进行多个任务 xff0c 比如发送文件 发送文本等 xff0c 互不影响 xff1a
  • 这些日子我读过的《java编程思想》

    来到这里实习的时候 xff0c 就准备多读几本书 xff0c 其中第一本就是 Java编程思想 xff0c 后续还会读一些 代码大全 算法导论 之类的书籍 不过这一次通过阅读 java编程思想 xff0c 我收获了实在太多了 xff0c 现
  • CMMI2.0和CMMI1.3有什么区别?

    CMMI资质认证想必已经有不少企业已经了解过了 xff0c 很多企业只了解到CMMI的基础知识 xff0c 却不明白CMMI也有不同的版本 xff0c CMMI1 3版本自动20年10月更改为2 0版本 xff0c 那CMMI的一个版本升级
  • CMMI2.0和1.3之间的区别有哪些?

    CMMI资质认证已经有很多年的历史了 xff0c CMMI的版本也发生了变化 xff0c 从最初的1 3版本演变成至今2 0版本 xff0c 现在的企业在办理的时候使用也都是2 0版本 xff0c 那么这两者之间的变化是什么 xff1f 区
  • Python str isalpha方法

    目录 描述 语法 举例 1 字符串中只包含字母 2 字符串包含数字 符号和字母 描述 isalpha函数检测字符串中是否只包含字母 如果全部是字母组成的字符串 xff0c 则返回True xff0c 否则返回False isalpha 函数
  • Caffe 完全安装指南(GPU) 上

    目录 0 写在前面1 Caffe依赖包安装1 1 ProtoBuffer1 2 Boost1 3 GFLAGS1 4 GLOG1 5 BLAS1 6 ZLIB1 7 HDF51 8 LMDB和LEVELDB1 9 Snappy1 10 Op
  • 质数因子的求解

    质因子 xff08 或质因数 xff09 在数论里是指能整除给定正整数的质数 根据算术基本定理 xff0c 不考虑排列顺序的情况 下 xff0c 每个正整数都能够以唯一的方式表示成它的质因数的乘积 下面求解某一个数的质因子的情况 1 分解为
  • 常见的液晶显示模块类型

    随着市场的发展 人们更加倾向于产品的人机交互对话功能 能够实现交互的方式很多 xff0c 作为对交互界面的各种显示器液晶液晶模块以其低功耗 易控制受到设计者的青睐 于是各种型号 功能的液晶模块涌入市场 xff0c 这就需要对其进行综合及比较
  • 如何在ubuntu系统中安装gnome界面

    首先 xff0c 你需要进入ubuntu系统 xff0c 然后打开终端 然后需要这样操作 xff1a 1 更新软件源 sudo apt get update sudo apt get upgrade y 2 安装Tasksel sudo a
  • 使用 podman 将容器作为 systemd 服务运行

    前置环境要求 xff1a 需要以 CRI O 作为容器运行时 安装 CRI O 及配置国内容器镜像加速器请参考 xff1a 使用 CRI O 容器引擎 本文介绍了如何使用 podman 初始化 systemd 服务 xff0c 以两种不同的
  • VNC远程桌面到linux,提示connection refused(10061)解决办法

    确认server端的VNC服务开启 xff0c service vncserver start xff0c 检测状态时ok的 ps ef grep vnc xff0c 来查看不是已经开启多个vnc连接 如果有多个vnc连接 xff0c 使用

随机推荐

  • nginx前端,tomcat后端服务器获取客户的真实IP,包括tomcat访问日志获取真实IP的配置

    在安装完以nginx 43 tomcat的WEB服务器 xff0c 使用默认的配置 xff0c 会导致服务器上的日志文件 xff0c 只有nginx日志能获取到客户的真实IP xff0c 而tomcat以及上面的JAVA WEB应用均不能正
  • 腾讯自研交换机系统优化之路

    一 Tencent NOS概述 SONiC is an open source network operating system based on Linux that runs on switches from multiple vend
  • vue-cli 插件开发补充

    官网地址 xff1a https cli vuejs org zh api地址 xff1a https cli vuejs org dev guide plugin api html Plugin API api version 64 vu
  • ubuntu 安装开发工具

    因为各种原因 又回到了Ubuntu系统 以后开始会陆续记些笔记 注意要点 选择ubuntu16 能自动识别新机型的物理硬件 集成了较新较全的驱动 比如网卡和声卡驱动都有 最主要是这两个 没有这两个就上不了网 听不到声音 解决很费时间 安装系
  • ubuntu vscode 使用clang-format and editor 插件序列化代码

    在使用vscode时 xff0c 可以加入插件 xff0c 在写代码的时候自动格式化代码 xff0c 对编码风格做一个自动化的处理 xff0c 这样会使同一个部门使用同一种规格编码 xff0c 在review代码时会很轻松 这里使用一键化的
  • 记录生活,记录学习----我的2016

    过着2017年的日子 xff0c 思考着2016年人生的变化 xff0c 或许 xff0c 最大的变化是懂得记录学习 xff0c 记录生活吧 2016年 xff0c 博客进入了我的生活 xff0c 从年初的寥寥数篇博客 xff0c 到现在C
  • 《Learning Deep Features for Discriminative Localization》——CAM热力图翻译及划重点

    摘要 在这项工作中 xff0c 我们重新审视了 Network in network 中提出的全局平均 池化层 xff08 global average pooling xff09 xff0c 并阐明了它是如何通过图片标签就能让卷积神经网络
  • VS2019的C++项目如何查看源文件(.h,.cc.cpp等)所在的工程

    在大型的C 43 43 项目中 xff0c 一个解决方案有多个 vcxproj工程文件 每个工程文件里又有很多源文件 xff0c 比如 xff1a 8071个项目 xff0c 文件数则更多 xff0c 因此 xff0c 当你打开一个源文件时
  • csdn排名出了Bug了?一场因排名引发的血案!

    一石激起千层浪 xff0c 排名让人很彷徨 xff01 很多人已经注意到了 xff0c 博客的排名出现了非常大的变化 xff01 不只是排名 xff0c CSDN最近的动作可是很频繁 xff0c 让我们来细数CSDN那些改变 但是 xff0
  • CSDN博主排名更新,看看原来的前1000名博主现在的排名如何

    CSDN博主排名更新 xff0c 看看新规则 原来的排名参考 xff1a CSDN前1000名博主 博客原排名新排名stpeace 1 25yuanmeng001 2 143yjclsx 3 72phphot 4 427833Augusdi
  • 程序员的求爱日:比1024多一点,1025,要你爱我!

    转眼又要到了1024 xff0c 还记得去年的1024活动 xff0c 我写一篇 xff1a 今天是程序员节 xff0c 明天就是求爱日啦 xff01 今年的活动 xff1a 程序员邂逅鼓励师的正确姿势 xff01 鼓励师 这个名词 xff
  • C# 绘制箭头的方法,仿微信截图的箭头

    C 绘制箭头的方法 xff0c 仿微信截图的箭头 效果见下图 xff0c 实际上还是有区别的 xff0c 箭头的起点处微信的是圆端 xff0c 而我实现的是尖端 说说我的实现吧 xff0c 实现方法其实是划线 xff0c 线的两端都要设置端
  • CSDN最近变化有点快

    文章内容原来在右边 xff0c 现在移到了左边 不过博客设置中的皮肤缩略图还没有变 归档样式变了 系统通知类型越来越多
  • 简单功能强大的jQuery在线图片裁剪插件croppic

    帝国CMS后台文章编辑功能的标题图片 xff0c 也就是文章封面设置功能用起来非常的不习惯不好用 xff0c 所以考虑换一个更好用的 xff0c 在网上找了一下 xff0c 最后觉得croppic最不错 xff0c 这里给大家分享一下 cr
  • 网站安全情况自查表怎么填?

    今天收到相关单位一个文档要填写 xff0c 包括 xff1a 表二 xff1a 信息系统运营使用单位填写 xff0c 表三 xff1a 网站安全情况自查表 xff0c 这个怎么填写呢 xff1f 按我个人理解 xff0c 按网站备案的信息填
  • 又是一年1024,去年的1025你是怎么过的?

    除非你在等车 xff0c 回首看看 xff0c 没有人不会觉得时间过得太快了吧 xff01 又是一年1024 xff0c 去年的1025你是怎么过的 xff1f 去年的 程序员的求爱日 比1024多一点 1025 要你爱我 前年的 今天是程
  • 2020年终总结——走在代码公益的路上

    从2012年加入 CSDN 博客 xff0c 已经过去了8个年头 xff0c 有收获也有感慨 xff1b 目前总排名24 xff0c 虽然排名已经很靠前了 xff0c 也是输出了很多内容 xff0c 但不像一些人输出的都是比较系统性的内容
  • nginx 实现图片防盗链功能

    在搜索浏览网页的时候 xff0c 发现一篇文章是从我的个人网站转载的 xff0c 但是没有注明出处 xff0c 文章中的图片也没有本地化处理 xff0c 还是从我的服务器请求 xff0c 这就无形中增加了我的服务器的开销 xff0c 于是有
  • 使用element ui + vuedraggable 实现页面控件拖拽排序

    项目要实现一些控件的拖拽排序 从而找到了这款vuedraggable控件 如上图要实现这些控件的拖拽排序 这是拖拽后 由于公司网络的原因 xff0c 项目没有使用npm xff0c 都是使用的引入的js lt script type 61
  • Winform界面开发教程 - 如何对应用程序界面的组织布局

    在设计界面的时候 xff0c 不管是在Web端 xff0c 还是在WinForm端 xff0c 或者是WPF或者移动界面等应用上 xff0c 我们对界面的组织布局 xff0c 一直是比较有趣的话题 xff0c 而组织界面的好坏从用户的感受来