翻譯|使用教程|編輯:龔雪|2025-02-10 10:48:34.260|閱讀 101 次
概述:本文主要介紹如何使用DevExpress WinForms Data Grid組件實(shí)現(xiàn)單元格合并,歡迎下載最新版組件體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
DevExpress WinForms擁有180+組件和UI庫(kù),能為Windows Forms平臺(tái)創(chuàng)建具有影響力的業(yè)務(wù)解決方案。DevExpress WinForms能完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序,無(wú)論是Office風(fēng)格的界面,還是分析處理大批量的業(yè)務(wù)數(shù)據(jù),它都能輕松勝任!
DevExpress WinForms網(wǎng)格控件可以垂直合并單元格,從而為具有許多重復(fù)值的視圖提供更清晰的數(shù)據(jù)表示。在本教程中,您將學(xué)習(xí)如何為整個(gè)視圖或單個(gè)列啟用單元格合并功能,還將看到如何更改確定是否合并兩個(gè)相鄰單元格的算法。
獲取DevExpress WinForms v24.2正式版下載
DevExpress技術(shù)交流群11:749942875 歡迎一起進(jìn)群討論
從一個(gè)以常規(guī)格式顯示數(shù)據(jù)的網(wǎng)格控件開(kāi)始。
在設(shè)計(jì)時(shí),訪問(wèn)視圖的屬性,然后展開(kāi)并啟用選項(xiàng)。
由于網(wǎng)格沒(méi)有為單元格合并提供默認(rèn)UI,因此可以創(chuàng)建一個(gè)按鈕處理程序,在運(yùn)行時(shí)切換相同的選項(xiàng)。
C#
private barButtonItem1_ItemClick(object sender, ItemClickEventArgs e) { gridView1.OptionsView.AllowCellMerge = !gridView1.OptionsView.AllowCellMerge; }
運(yùn)行應(yīng)用程序,注意具有相同值的列單元格被合并,單擊該按鈕可查看啟用或禁用單元格合并時(shí)布局的變化情況。
請(qǐng)注意,可以通過(guò)對(duì)具有重復(fù)值的列進(jìn)行排序來(lái)啟用更具可讀性的視圖。這將相同的值放在一起,因此視圖將更大的數(shù)據(jù)塊連接到合并的單元格中。
現(xiàn)在選擇Priority列來(lái)訪問(wèn)它的屬性,展開(kāi),然后禁用選項(xiàng)。
運(yùn)行應(yīng)用程序,查看優(yōu)先級(jí)單元格不再合并,而其他列仍然啟用了該特性。
現(xiàn)在您可以注意到,Created By列中的電子郵件地址具有重復(fù)的域。您可以更改單元格合并算法,以便將具有相同域的所有單元格合并在一起。
選擇網(wǎng)格視圖并訪問(wèn)其事件來(lái)編寫(xiě)處理程序,代碼檢查是否正在處理Created By列。單元格顯示文本(或電子郵件地址)從參數(shù)獲得,處理程序然后檢索帶有域名的子字符串,并將其分配回。
C#
private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column == colCreatorID) { string email = e.DisplayText; string domain = email.Substring(email.IndexOf('@') + 1); e.DisplayText = domain; } }
運(yùn)行應(yīng)用程序,您將看到域名顯示在單元格中,但沒(méi)有發(fā)生合并,因?yàn)樵撎匦匀匀灰蕾囉趩卧裰刀皇秋@示文本。
為了解決這個(gè)問(wèn)題,編寫(xiě)一個(gè)事件處理程序。首先,檢查正在處理的列是否正確。然后,獲取正在比較的兩個(gè)單元格的顯示文本。最后,指示如果單元格的顯示文本匹配,則合并單元格。將參數(shù)設(shè)置為true,以覆蓋網(wǎng)格對(duì)該列的默認(rèn)處理。
C#
using DevExpress.XtraGrid.Views.Grid; // ... private void gridView1_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e) { GridView view = sender as GridView; if(view == null) return; if (e.Column == colCreatorID) { string text1 = view.GetRowCellDisplayText(e.RowHandle1, colCreatorID); string text2 = view.GetRowCellDisplayText(e.RowHandle2, colCreatorID); e.Merge = (text1 == text2); e.Handled = true; } }
現(xiàn)在運(yùn)行應(yīng)用程序,查看是否正在根據(jù)域信息合并單元格。
更多產(chǎn)品資訊及授權(quán),歡迎“”!
慧都科技為國(guó)內(nèi)眾多知名企業(yè)提供一站式的DevExpress產(chǎn)品中文服務(wù),負(fù)責(zé)DevExpress控件產(chǎn)品中國(guó)區(qū)的銷售、試用、技術(shù)支持,賦能航空航天、金融、醫(yī)療等行業(yè)客戶成功構(gòu)建企業(yè)級(jí)應(yīng)用!歡迎咨詢:023-68661681,慧都科技助力企業(yè)邁向新高度!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)