MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码)

简介:

 

本文的目标是通过MultiRow快速开发一个简单的WinForm数据库应用 - “员工信息管理系统”。 其中会使用到MulitRow提供的部分内置的Cell类型、MultiRow模板创建、以及MulitRow的打印功能。

准备数据库

首先,我们使用Microsoft Access 2007数据库,创建一个数据表,命名为Employees,创建一些字段,给每个字段指定数据类型。请看下图:

clip_image002

字段数据类型和名字确定后,切换到DataSheet View模式下,开始填入数据,如下图所示:

clip_image004

传统的表格控件在展示数据表当中的一条记录时,大部分都是将一条记录展示在表格控件当中独立的一行里,每行当中的列对应数据表当中的一列,比如.net framework 提供的DataGridView控件,它做数据绑定绑定之后,如下图所示:

clip_image006

上面创建的数据库有19个字段,如果使用DataGridView展示,应用程序将需要更宽的距离才能完全展示一条记录。这样导致可读性大打折扣。因此,对于一条数据表记录可以自由布局,增强可读性和美观性是表格类控件一直前进的方向之一。

而使用MulitRow,你可以随心所欲地在MulitRow的一个Row上面安排每个Cell的排列位置,甚至可以让多个Cell叠加,让每个Cell来展示数据表记录当中的每个数据域。这时候你需要做的是打开Visual Studio,创建一个Windows Forms Application工程,然后添加一个MultiRow的模板(Template),至于如何添加模板和使用MulitRow提供的集成模板设计器,可以参考之前的三篇文章。

编辑模板

在创建模板的时候,我们需要根据数据库当中的不同字段类型选择不同的Cell类型来展示数据。

本例中,我只使用了9种Cell类型,根据自己的喜好摆出来下面的布局形式:

clip_image008

所有的Cell都排布在模板的Row区域当中,这个Row在模板加载到GcMultiRow控件之后,会根据数据记录条数发生迭代。另外,我根据不同的数据域类型,选择了不同的Cell类型展示数据,其中

· 背景为SystemColors.Control的Cell为RowHeaderCell,用来描述后面的数据类型的Cell,就像一个标签一样,他可以有Hover,点击等效果,也可以执行选择以及显示行号;

· 布尔类型的数据可以使用CheckBoxCell来展示;

· “电话号码”,“邮编”,“月薪”等有固定格式的类型,可以使用MaskedTextBoxCell来展示,通过设置他的Mask属性来控制显示的格式;

· 日期类型的可以使用DateTimePicker类型;

· 图片类型可以使用ImageCell,等等。

MulitRow提供了多达23种Cell类型,你可以根据数据类型选择不同的Cell类型展示数据,在这里就不详细介绍,可以参考http://www.grapecity.cn/powertools/products/mr_features.htm

当Cell的位置摆放好之后,需要将每个数据Cell跟数据表当中的字段关联起来,让这个Cell在运行起来之后显示特定的数据列当中的值。可以使用MultiRow模板设计器提供的TemplateProperty管理器或者属性管理器来设置每个数据Cell的DataField属性,将其和数据表的列名相关联,这样模板加载之后,每个数据Cell就可以显示数据表当中对应的列了。

如果觉得模板的样式过于单调,可以需要调节Template当中的相关Style属性来设置外观,可以参考MulitRow帮助文档中“如何设置Style和皮肤”章节。我设计了一个样式,如下图所示:(示意而已,如果觉得丑还请见谅~)

clip_image010

应用模板

完成上面工作后,一个基本的模板就设计好了。剩下的工作就是将Template应用到一个GcMultiRow控件。我们在Form上添加一个GcMultiRow控件,然后将设计好的Template设置给他的Template属性,并且给GcMultiRow控件添加数据源,以及设置一些属性。

完成应用程序

最后,可以在Form当中添加两个ToolStrip,用来展示导航和打印功能。之后运行工程,效果如下:

clip_image012

可以点击Form底部的按钮来切换上一个和下一个记录,通过Form顶部的按钮来预览打印效果。

值得一提的是,上面应用程序仅仅显示了GcMultiRow控件当中的一个Row,也就是数据表当中的一条记录,我将Form的大小调节的刚好跟一个Row的大小相当,因此每次可以浏览一个Row,通过点击导航条上面的按钮,可以使用GcMultiRow提供的按行滚动的效果,看起来就像是一条一条在浏览。这时候,如果你将Form高度拉大,你会看到多个Row存在于Form之上,就像一个一个卡片一样,请看下图:

clip_image014

你也可以保持Form上面不管如何放缩都保持只有一个Row,这个需要写几行代码,在这里我就不演示了,如果感兴趣,可以访问GCDN的MulitRow专区,我们可以一起讨论一些细节的问题。

预览和打印

MultiRow也提供了打印功能,以及各种打印模式和设置,下面是使用SingleRow打印模式,保证每页只打印一条记录,打印预览效果如下所示:

clip_image016

如果满意的话,直接打印好了~

 



本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/460318,如需转载请自行联系原作者

相关文章
|
4月前
|
编译器 vr&ar 图形学
从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目
这是一篇Unity3D结合Vuforia实现增强现实(AR)项目的入门教程,涵盖了环境配置、Vuforia账户注册、Target数据集创建、Unity项目设置、AR程序配置、Android环境配置以及最终在手机上测试运行的全过程。
从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目
|
4月前
|
设计模式 前端开发 开发者
Angular携手Material Design:探索设计模式下的UI组件开发之道——从按钮到对话框的全面实战演示
【8月更文挑战第31天】在现代Web应用开发中,Angular框架结合Material Design设计原则与组件库,显著提升了用户界面的质量与开发效率。本文通过具体代码示例,详细介绍如何在Angular项目中引入并使用Material Design的UI组件,包括按钮、表单和对话框等,帮助开发者快速构建美观且功能强大的应用。通过这种方式,不仅能提高开发效率,还能确保界面设计的一致性和高质量,为用户提供卓越的体验。
33 0
|
4月前
|
前端开发 UED
Angular 动画教程超赞!掌握让应用更具交互性的技巧,开启精彩的前端动画之旅!
【8月更文挑战第31天】在现代前端开发中,提升用户体验至关重要,而动画是增强应用交互性的有效手段。Angular 提供了强大的动画功能,可轻松添加各种动画效果。本文介绍了 Angular 动画的基本概念、使用动画模块、事件触发动画、动画序列与并行执行、性能优化及结合第三方动画库等最佳实践。通过遵循这些实践,可以充分发挥 Angular 动画的优势,提升用户体验。下面是一个简单的示例应用,展示了如何使用 Angular 动画实现元素的显示和隐藏效果。
65 0
|
7月前
|
前端开发 JavaScript UED
如何使用 AngularJS 创建出色的动画效果?
如何使用 AngularJS 创建出色的动画效果?
78 2
|
JavaScript 前端开发 开发工具
Angular最新教程-第一节环境搭建和新建项目
Angular最新教程-第一节环境搭建和新建项目
313 0
Angular最新教程-第一节环境搭建和新建项目