[WinForm每日一帖] 如何製作複雜表頭的Grid

  
       實現Grid的複雜表頭是不可避免的一個應用,我們的VB程序中也有很多使用SSDBGrid做類似的實現的例子,那麼在UltraGrid中如何實現複雜表頭呢?
       嚴格的說實現UltraGrid的複雜表頭可以有兩種方式,第一根據UltraGrid提供的接口屬性進行設置第二是重寫其Paint方法,但較複雜,不推薦
根據UltraGrid提供的屬性進行組合可以在設計時實現所見即所得的效果,也可以通過編程實現,較繁瑣。
本文將介紹如何在設計時根據UltraGrid的接口屬性進行組合以展現複雜表頭的效果。
要展示的效果如下,Personal Information爲一個固定的Title,相當於Group,不對應詳細的Cell,其下包括Name、Age、Sex三個子Title
1.     拖一個UltraGrid到Form中,設置其常規屬性,不再介紹
2.     設定其DataSource,並添加一些Column到Grid
然後在Band屬性設置部分設置如下屬性Band的UseRowLayout = True,啓用Row佈局,這點很重要!
3.     然後在Columns中添加一個UnboundColumn到Band中,作爲Personal Information一欄
注意:設置其CellActivation = Disabled,表示該欄位不被激活;設置其SortIndicator = Disabled,表示該欄位不允許排序;
4.     接下來設置每個Column的RowLayoutColumnInfo屬性
注意:
這個地方很重要,直接關係到Title的佈局呈現;
四個屬性需要了解OriginX(X到原點(Grid的左上角爲0 / 0)位置)、OriginY(Y到原點位置)、SpanX(X軸上跨越個數)、SpanY(Y軸跨越個數),這裏的最小計數單位爲2.
以Name欄位爲例,從效果圖中可以看出,其X據(0,0)爲0,Y據(0,0)爲2,X軸上跨越一個數=2,Y軸上跨越2個數=4,故設定如下:
其餘欄位類似,如Age四個屬性分別爲(2,2,2,2),Sex的四個屬性分別爲(2,4,2,2),Team的四個屬性爲(4,0,2,6),Personal Information的四個屬性(0,0,4,2)
5.     Personal Information欄位需要注意做如下設定
由於Personal Information欄位是僅爲了呈現的Title,所以需要設定其PreferredCellSize大小爲1×1,且AllowCellSizing=None,LabelPosition=LabelOnly
6.     數據綁定還是同常規做法,沒什麼特別的,運行效果如下
7.     導出到Excel中效果如下
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章