DevExpress.XtraGrid控件使用
該控件類是一個表格控件,但是其具有很多友善而使用的功能,例如可以對記錄進行分組,可以再記錄的前面加上checkbox,可以将具有相同值的cell
進行合并等等。Grid分為兩部分,DevExpress.XtraGrid.GridControl 和
DevExpress.XtraGrid.Views.Grid.GridView,GridControl 主要負責資料源、控件整體尺寸等等方面的
控制,GridView主要負責控件是否允許編輯、是否顯示分組等資訊,具體可以見VS屬性視窗(本人也是限定在使用上,具體該控件為什麼要分為兩部分,
每部分從設計的角度來講起到什麼作用等,還沒有具體研究)。Grid的資料源的設定同tree類似,不在贅述,這裡主要想介紹一下下面幾個問題:
2.1 DevExpress.XtraGrid分組
設定好資料源後,隻需要設定grid的groupIndex就可分組,操作:右鍵/run designer/colums/選擇一個列/設定
GroupIndex(當然設定前,你需要為grid添加一些column才可以)。分組需要以某一個列進行分組,該列必須要對應到資料源中的某個字段,
即分組是按照資料源中的某些字段進行分組。grid可以顯示多組,第一組的分組列的groupIndex為0,第二組的分組列的groupIndex為
1,依此類推。下例中classID的groupIndex為0,stuNum的groupIndex為1。為了直覺、易于了解,編了個小例子,上段代碼
和效果圖,具體如下:将dt指派給gridControl的資料源。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
2.2 DevExpress.XtraGrid修改分組标題
如上圖所示,分為兩組,每組的标題為“列标題:值”,上例為“班級ID:1”,但有時需要根據記錄中的值,動态修改分組标題。為gridView1
添加CustomDrawGroupRow事件響應函數(注意是GridView而不是GridControl),在函數動态修改标題,為了不顯示重複信
息,可以将班級和學生姓名列隐藏。上碼,上圖,如下:
C# code?
|
2.3 DevExpress.XtraGrid添加行号
為了添加行号,需要添加GridView事件CustomDrawRowIndicator的處理函數,函數中每組所在行的索引從-1開始減小,普
通記錄行從0開始增加。注意需要在grid所在的窗體的加載事件(或者其他的form事件)處理函數中,加上一個代碼
gridView1.IndicatorWidth = 50;
,否則行号不能顯示,原因沒去研究。注意,當記錄較多grid出現滾動條時,下述代碼會導緻行号錯亂,需要注意,這裡隻是給出顯示行号所需要的一些基本知識和原理。上碼,上圖,如下:
|
3. 關于DevExpress的一些資料
上面大緻的介紹了,tree和grid的使用方法,其實不是很難,隻是對于新手而言,可以作為一個簡單的參考,下面再介紹一下當時找到的一些技術貼,供大家參考。
3.1 給TreeList的根和子節點彈出不同的右鍵菜單
3.2 DevExpress窗體統一換膚
3.3 DevExpress線上幫助文檔