Dev控件,在WinForm下动态配置界面

作者:袖梨 2022-06-25

一、使用场景

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

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

二、控件封装

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

三、设计经验

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

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

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

如下图结构:

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

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

相关文章

精彩推荐