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