开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5629|回复: 2

基于DevExpress控件,在WinForm下动态配置界面

[复制链接]

0

精华

0

贡献

6

赞扬

帖子
31
软币
206
在线时间
9 小时
注册时间
2015-9-24
发表于 2015-9-29 15:39:15 | 显示全部楼层 |阅读模式

今天我要分享的是,基于DevExpress中的LayoutControl控件,在WinForm下动态配置界面的一个设计方案,主要用于各种场景下的动态表单生成。

相信用到DevExpress控件的各位呢,对LayoutControl应该不会陌生,这是一个相当强大的一个界面布局控件。本人也正是基于该控件,实现了一套自己的动态表单。

一、使用场景

  用于数据录入界面,数据展示界面,查询配置界面等等。例如,我们为用户定制了一张人员信息卡片,往往初期开发时由于各种原因,没有设计某个字段,或者是界面展现的方式不够友好直观,那么我们希望通过以更改配置文件的方式来满足用户的需求,而不需要我们重新对项目代码生成发布,减少了开发人员的工作量。

当然,如果您的表单不是一个变化点,那么本人不建议使用配置的方式生成界面。

二、控件封装

基于对LayoutControl的封装,使其可根据配置文件的配置信息,动态的创建界面。由于该控件自带了可保存其布局信息的功能,我们在设计中可以把精力放在更有用的环节上。封装后的控件名为ExLayoutControl。我也将它称为布局控件,因为它实质上就是一个容器。

三、设计经验

  该方案是本人第三个设计,已经在项目中大量实施,效果明显,而且用户对此非常认可,可以在用户的现场监督下,快速的实现其与之相关的需求。

  第一、二个版本,都是已重载现有控件,实现统一接口为核心思想。优点是,调用方比较简单,但是需要为所有用到的控件实现统一的接口才能使用到实际项目中,扩展性极差。

  在有了前两个版本的经验基础上,意识到,不能使用继承的方式来实现该控件,而应以对象组合的方式实现。

如下图结构:

图中深色底的为容器控件;控制器用于控制控件的属性及行为。

相信各位看到此图,已经明白了其中的奥妙,其中的核心也就是这些控制器,用他们来组合管理各个控件的属性和行为

更多在线资源


回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
71
软币
273
在线时间
32 小时
注册时间
2015-5-25
发表于 2015-12-5 18:41:55 | 显示全部楼层
这个强大之处在哪里楼主没有说啊
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-11-22 01:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表