基於Dev控件,在WinForm下動態配置界面


  在博客園逗留了一年多了,一直想上來寫點東西,但是每每寫的時候又不知道有什么可以分享給大家,因為我以為自己懂的別人也懂。直到我開始帶項目了,我才知道該寫點什么。

  好了,廢話不多說了,今天來開始寫本人的第一篇博文,水平有限,還望各位海涵!

  今天我要分享的是,基於DevExpress中的LayoutControl控件,在WinForm下動態配置界面的一個設計方案,主要用於各種場景下的動態表單生成。

  相信用到DevExpress控件的童鞋,對LayoutControl這個東東應該不會陌生,相當強大的一個界面布局控件。本人也正是基於該控件,實現了一套自己的動態表單。

一、使用場景

  用於數據錄入界面,數據展示界面,查詢配置界面等等。例如,我們為用戶定制了一張人員信息卡片,往往初期開發時由於各種原因,沒有設計某個字段,或者是界面展現的方式不夠友好直觀,那么我們希望通過以更改配置文件的方式來滿足用戶的需求,而不需要我們重新對項目代碼生成發布,減少了開發人員的工作量。

  當然,如果您的表單不是一個變化點,那么本人不建議使用配置的方式生成界面。

二、控件封裝

  基於對LayoutControl的封裝,使其可根據配置文件的配置信息,動態的創建界面。由於該控件自帶了可保存其布局信息的功能,我們在設計中可以把精力放在更有用的環節上。封裝后的控件名為ExLayoutControl。我也將它稱為布局控件,因為它實質上就是一個容器。

三、設計經驗

  該方案是本人第三個設計,已經在項目中大量實施,效果明顯,而且用戶對此非常認可,可以在用戶的現場監督下,快速的實現其與之相關的需求。

  第一、二個版本,都是已重載現有控件,實現統一接口為核心思想。優點是,調用方比較簡單,但是需要為所有用到的控件實現統一的接口才能使用到實際項目中,擴展性極差。

  在有了前兩個版本的經驗基礎上,我意識到,不能使用繼承的方式來實現該控件,而應以對象組合的方式實現。

如下圖結構:

圖中深色底的為容器控件;控制器用於控制控件的屬性及行為。

相信各位看到此圖,已經明白了其中的奧妙。其中的核心也就是這些控制器,用他們來組合管理各個控件的屬性和行為。

……

洗了個澡就11點了,不玩了不玩了,睡覺了,后面抽時間完善吧!明天還有很重要的事情!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM