主頁 > .NET開發 > 總結開發中基于DevExpress的Winform界面效果

總結開發中基于DevExpress的Winform界面效果

2021-08-05 06:11:58 .NET開發

DevExpress是一家全球知名的控制元件開發公司, DevExpress 也特指此公司出品的控制元件集合或某系列控制元件或其中某控制元件,我們應用最為廣泛的是基于Winform的DevExpress控制元件組,本篇隨筆主要總結筆者在Winform開發框架中應用到的各種基于DevExpress的Winform界面效果,

1、SplashScreen控制元件

我們在開發桌面應用程式的時候,由于程式啟動比較慢或者展示公司產品Logo,往往為了提高用戶的體驗,增加一個閃屏,也就是SplashScreen,好處有:1、讓用戶看到加載的程序,提高程式的互動回應;2.可以簡短展示或者介紹程式的功能或者展示Logo,給客戶較深的印象,

 在DevExpress程式中使用SplashScreenManager控制元件實作啟動閃屏和等待資訊視窗,這個SplashScreenManager很好的封裝了日常WInform程式中用到的啟動閃屏視窗和在耗時操作中進行等待提示的資訊視窗,合理使用可以增加程式界面的友好交換,

 

2、GridControl控制元件的封裝分頁控制元件

在Winform開發中,一直離不開分頁處理,好的分頁控制元件封裝,能為開發節省很多時間和繁瑣作業,對分頁控制元件一直的改進和完善,也是我的興趣之一,

可以通過選單設定顯示的列內容,

 

 

 3、基于Ribbon樣式的界面

為了更多放置一些開發功能,我們可以使用樹串列的方式,也可以使用Ribbon的方式,更加緊湊的展示功能按鈕,

 或者參考框架備件倉庫管理系統的界面

應該會比放在樹串列中展示的比較好一點

有時候,我們需要分類展示不同的選單功能,而且功能比較多的時候,可以結合Ribbon工具列和樹串列的方式展示功能點,

 

4、使用布局控制元件約束內容展示

在錄入資料的界面的設計中, 我一般傾向于使用LayoutControl控制元件實作布局功能,這個控制元件對我們排版各種控制元件非常方便,

我們在展示詳細界面的時候,一般為了整潔美觀,一般使用LayoutControl布局控制元件來約束內容的展示,

或者如下詳細界面所示

 

下面是我在其中的一個界面中使用該控制元件調整后得到的一個多樣化一點的界面表達方式,有點類似于分組分類的方式,使得輸入的內容更加易讀,

這個調整好的界面布局的設計模式下的效果如下所示,

 

5、SearchLookUpEdit控制元件的使用

可以在GridControl中整合SearchLookupEdit控制元件,以便快速選擇錄入資料

 

 6、內容比較多則封裝控制元件實作多頁面處理

 我們在做Winform專案開發的時候,經常會發現有一些資料很多,需要通過不同的Tab頁面分類來實作資料的錄入和現實,例如體檢資料,可能包含外科、內科、眼科、耳鼻喉科、口腔科、以及其他的檢查等等內容,如果一次性放在一個視窗中現實,不太合理也不好看,如果通過多個Tab分類進行管理,則用戶體驗好很多,

如上分析,我們把每個模塊獨立出來做一個控制元件,如眼科的作為一個獨立的用戶控制元件進行展現,如下所示,

 

或者類似下面客戶關系管理系統中的內容關系

 

 

 

7、GridControl樣式控制

通過控制GridControl的串列展示樣式,可以著重強調某個欄位的資訊,也可以進行內容的轉義處理,

  

GridView表頭多行顯示(折行),表頭及行內容居中操作

 

 

8、RichEditControl控制元件的封裝使用

傳統.NET界面有一個RichTextBox控制元件,這個是一個富文本控制元件,可以存盤圖片文字等內容,它有自己的檔案格式RTF,在DevExpress控制元件組里面也有一個同等的控制元件,他的名字是RichEditControl,這個控制元件功能很強大,基于RichEditControl控制元件我們可以增加自定義按鈕,實作定制工具潭訓者自定義的處理功能,

 

9、圖表控制元件

有時候,基于對一些年份、月份的統計,需要集成多個數值指標進行分析,因此就需要把多種資料放到一個圖形里面展現,也成為多重坐標軸,多重坐標軸可以是多個X軸,也可以是Y軸,它們的處理方式類似,

或者餅圖展示

 

 

10、附件管理的自定義組件

在很多病人資料管理模塊中,都需要管理影像學資料,這個在我的Winfrom開發框架中,提供了一個附件管理的通用模塊供重復使用,因此對這些操作并不會增加太多的作業量,統一使用即可,界面效果如下所示,

附件管理模塊提供了分類的附件管理,圖片縮略圖預覽和圖片預覽,多檔案上傳、下載、洗掉等附件操作,滿足我們對附件管理的大多數要求,

 

11、 樹串列展示

我們為了直觀顯示的需要,一般把選單用樹串列控制元件進行展示,其中就會用到我們說的TreeList控制元件,如下界面所示,

其中TreeList和一個輸入SearchControl來一起協同使用,可以提高界面的友好性,我們可以通過輸入關鍵字進行節點的過濾顯示,

如輸入過濾內容后查詢過濾樹串列節點,如下所示,這樣可以給用戶快速模糊檢索指定的樹節點,

下面也是樹串列的展示案例界面

或者如下樹形串列界面所示 

整體結合多檔案展示內容,界面效果如下所示,

 

12、 GridControl資料匯入匯出處理

GridControl內容簡單的匯出很容易,只需要把相關的資料表,利用Aspose.cell匯出到指定的檔案即可,簡單二維表匯出Excel資料的效果如下所示,

由于作業的需要,在我的Winform開發框架中引入了一個通用的資料匯入模塊,來實作這個既是統一,又是變化的業務需求,首先我們來看看能大致的模塊功能介紹圖,如下所示,

然后我們再來看看實際的匯入模塊操作界面,如下圖所示

在最底的狀態欄里面,但我們保存資料的時候,會呼叫后臺執行緒進行資料保存,并顯示資料匯入的進度狀態,由于是采用后臺執行緒處理,不會阻塞當前的界面,在多檔案的Winform開發框架界面中,可以切換到其他業務界面進行其他處理,不影響整體界面操作,

 

下面我們就來介紹內容比較多的時候,分選項卡展示一個記錄內容的操作,如圖所示,

匯入的資料,是一個Excel,它要求包含幾個不同表的資料,匯入操作一次性完成資料的匯入,Excel檔案的格式如下所示,

 

匯出操作,我們根據用戶的選擇,可以一次性匯出多個Excel檔案,每個Excel檔案包含客戶的基礎資訊,也包含相關資料,它們的格式和匯入的格式保持一致即可,這樣方便資料的交換處理,

匯出操作,我們需要把客戶的選擇資訊轉換為需要匯出的物件串列資料,然后系結到Excel里面即可,因此我們的Excel里面,可以通過自定義模板,指定列的資料屬性就可以系結好資料了,

 

 

13、SplitContainerControl控制元件的分拆界面

左右分拆的界面布局效果如下所示,

 

或者主從表的界面效果

 

 

 

 

14、利用DevExpress的控制元件實作對PDF、Word、Excel檔案的預覽和操作處理

為了演示這些控制元件的處理,我單獨撰寫了一個例子,用來實作對PDF、Word、Excel等檔案的處理,

為了顯示PDF檔案,我們需要在界面里面添加一個XtraPdfViewer.PdfViewer的控制元件,這個主要是用來顯示PDF的,它有很多屬性方法,用來實作對PDF的處理操作

 

其中RichEditControl能夠較好顯示Word檔案, 加載檔案后,界面顯示內容如下所示:

檔案控制元件很容易支持列印預覽功能,列印預覽的界面如下所示

對于Excel檔案的預覽和操作,DevExpress控制元件在最近版本中增加的XtraSpreadsheet.SpreadsheetControl控制元件就可以實作Excel的顯示和處理操作,這個控制元件很強大,可以處理很復雜格式的Excel檔案,雖然我原來使用了另外一個FarPoint Spread控制元件組,不過這個XtraSpreadsheet控制元件組,如果集成在DevExpress也就很方便了,

這個DevExpress的控制元件,可以在其中進行Excel的新建、保存、列印預覽等操作,當然也可以打開我們已有的Excel檔案了,

打開檔案后,界面效果如下所示,

預覽也很方便,和Word的預覽操作類似,

如我在我的《Winform開發框架》、《混合式開發框架里面》使用的通用附件管理模塊,就是基于這些特點,實作圖片、Excel檔案、Word檔案和PDF等檔案的在線預覽和管理操作,界面截圖如下所示,

 

15、WizardControl向導控制元件

在一些界面操作里面,我們可能把它拆分為幾部進行處理,這個時候引入WizardControl向導控制元件應該是比較不錯的選擇了,多步的處理方式,可以讓用戶避免一次性輸入太多內容的煩躁心情,也可以針對性的校驗部分內容,

我們一般在DevExpress的VS工具列里面選擇導航布局選項卡,就可以找到對應的WizardControl向導控制元件了,

最終我們實作的效果如下所示,

 

16、日程控制元件XtraScheduler

在一些應用場景中,我們可能需要記錄某一天,某個時段的日程安排,那么這個時候就需要引入了DevExpress的日程控制元件XtraScheduler了,這個控制元件功能非常強大,提供了很好的界面展現方式,以及很多的事件、屬性給我們定制修改,能很好滿足我們的日程計劃安排的需求,

整個日程控制元件,可以分為日視圖、周視圖、月視圖等等,當然還有一些不常用的時間線、甘特圖等,本例我們來關注控制元件的使用以及這幾個視圖的處理,先來看看他們的界面效果,如下所示,

日視圖:

在視圖里面,默認可以打開回應的日程事件進行編輯的,

 

周視圖:

月視圖:

由于控制元件,默認也是提供右鍵選單,對幾種控制元件視圖進行切換的,如下選單所示,

 

17、背景加按鈕排版,實作更加場景化的功能指引

在一些場景里面,如一些進銷存的系統里面,我們往往把一些相關的模塊處理放在一起,如進貨、退貨、庫存調入、調出、產品、庫存、盤點等這些資訊,就是一個場景里面的內容,有時候可以把它們放在一起,但是如果單純的放幾個按鈕,可能會顯得比較單調一些,我們為了豐富界面效果,把界面設計效果如下所示,

這個界面雖說不是特別華麗,但是也是比僅僅放幾個標準的按鈕來的美觀一些,而且按鈕之間也設定了一些箭頭來指示他們的流程或者從屬關系,因此在一些場合,我們更傾向使用這種直觀、清晰的界面表達方式,同時也增加了一定的美感,

利用圖元的繪圖工具如EDraw Max等等這些來繪制背景,預先留出放置圖示按鈕的位置,我們繪制一個背景如下所示,

繪制好這些背景,截圖出來待用,記住要圖片要預留一定的位置,并且具有一定的畫布大小,我們想圖片按正常方式設為背景即可,這樣我們在視窗放大的時候,不至于直接看完圖片了,截取出來的圖片,左上角預留一定的位置即可,

在我們預先新建的表單上面,設定它的BackgroundImage背景圖片,如下圖所示,

 

18、Winform開發框架介紹

Winform開發框架詳細了解可以訪問:http://www.iqidi.com/Framework/info.html 

 

 

 

 

 

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/291751.html

標籤:WinForm

上一篇:.Net Core微服務——自動收縮、健康檢查:Consul(三)

下一篇:02.反射Reflection

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more