zoukankan      html  css  js  c++  java
  • 基于Dev控件,在WinForm下动态配置界面

      在博客园逗留了一年多了,一直想上来写点东西,但是每每写的时候又不知道有什么可以分享给大家,因为我以为自己懂的别人也懂。直到我开始带项目了,我才知道该写点什么。

      好了,废话不多说了,今天来开始写本人的第一篇博文,水平有限,还望各位海涵!

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

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

    一、使用场景

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

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

    二、控件封装

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

    三、设计经验

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

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

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

    如下图结构:

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

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

    ……

    洗了个澡就11点了,不玩了不玩了,睡觉了,后面抽时间完善吧!明天还有很重要的事情!

  • 相关阅读:
    字节面试 抖音/火山高级后台开发工程师
    面试总结 缓存Redis
    腾讯面试 WXG 微信支付核心业务应用工程师
    富途面试 基础组件Java开发
    mybatis lombok 报错: java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor
    十进制转十六进制
    2020年第11届蓝桥杯C/C++B组 第二轮省赛
    辗转相除法
    2020年第11届蓝桥杯C/C++B组 第一轮省赛
    2020第十一届蓝桥杯大赛软件类国赛题目 C/C++ B 组
  • 原文地址:https://www.cnblogs.com/invoker/p/2312567.html
Copyright © 2011-2022 走看看