原創|其它|編輯:郝浩|2012-10-15 10:36:18.000|閱讀 2796 次
概述:基于DevExpress控件,在WinForm下動態配置界面
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
今天我要分享的是,基于DevExpress中的LayoutControl控件,在WinForm下動態配置界面的一個設計方案,主要用于各種場景下的動態表單生成。
相信用到DevExpress控件的各位呢,對LayoutControl應該不會陌生,這是一個相當強大的一個界面布局控件。本人也正是基于該控件,實現了一套自己的動態表單。
一、使用場景
  用于數據錄入界面,數據展示界面,查詢配置界面等等。例如,我們為用戶定制了一張人員信息卡片,往往初期開發時由于各種原因,沒有設計某個字段,或者是界面展現的方式不夠友好直觀,那么我們希望通過以更改配置文件的方式來滿足用戶的需求,而不需要我們重新對項目代碼生成發布,減少了開發人員的工作量。
當然,如果您的表單不是一個變化點,那么本人不建議使用配置的方式生成界面。
二、控件封裝
基于對LayoutControl的封裝,使其可根據配置文件的配置信息,動態的創建界面。由于該控件自帶了可保存其布局信息的功能,我們在設計中可以把精力放在更有用的環節上。封裝后的控件名為ExLayoutControl。我也將它稱為布局控件,因為它實質上就是一個容器。
三、設計經驗
該方案是本人第三個設計,已經在項目中大量實施,效果明顯,而且用戶對此非常認可,可以在用戶的現場監督下,快速的實現其與之相關的需求。
第一、二個版本,都是已重載現有控件,實現統一接口為核心思想。優點是,調用方比較簡單,但是需要為所有用到的控件實現統一的接口才能使用到實際項目中,擴展性極差。
在有了前兩個版本的經驗基礎上,意識到,不能使用繼承的方式來實現該控件,而應以對象組合的方式實現。
如下圖結構:
圖中深色底的為容器控件;控制器用于控制控件的屬性及行為。
相信各位看到此圖,已經明白了其中的奧妙,其中的核心也就是這些控制器,用他們來組合管理各個控件的屬性和行為。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園