前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码)

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

作者头像
葡萄城控件
发布2018-01-10 10:22:30
1.3K0
发布2018-01-10 10:22:30
举报
前文回顾

MultiRow发现之旅(一)- 高效模板设计器

MultiRow发现之旅(二)- 详解属性管理器

MultiRow发现之旅(三)- 模板管理器和Table

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

准备数据库

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

clip_image002
clip_image002

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

clip_image004
clip_image004

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

clip_image006
clip_image006

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

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

编辑模板

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

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

clip_image008
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
clip_image010
应用模板

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

完成应用程序

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

clip_image012
clip_image012

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

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

clip_image014
clip_image014

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

预览和打印

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

clip_image016
clip_image016

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

源代码下载:

SourceCode

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-12-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前文回顾
  • 准备数据库
  • 编辑模板
  • 应用模板
  • 完成应用程序
  • 预览和打印
  • 源代码下载:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档