1.DevExpress控制元件組中的GridControl控制元件不能使橫向滾動條有效。
現象:控制元件中的好多列都擠在一起,列寬都變的很小,根本無法正常瀏覽控制元件單元格中的內容。
解決:gridView1.OptionsView.ColumnAutoWidth屬性是true,即各列的寬度自動調整,你把它設成false,就會出現了。
2.使單元格不可編輯。
解決:gridcontrol -->gridview -->OptionsBehavior -->Editable=false
3.沒有下拉滾動條事件怎麼辦?
現象:因為需要載入大資料量資料,所以不能一次把所有資料讀入datatable進行繫結,所以決定在使用者進一步瀏覽資料時進行資料的實時載入工作,就是每當使用者拉動滾動條時,多載入一些資料進入datatable.沒有找到合適的滾動條事件,於是用這個事件代替了,非常合適我的需求。
解決:TopRowChanged事件。
4.獲取選定行,指定列單元格的內容
解決程式碼如下:
private string GetSelectOID() { int[] pRows = this.gridView1.GetSelectedRows(); if (pRows.GetLength(0) > 0) return gridView1.GetRowCellValue(pRows[0], mOIDFiledName).ToString (); else return null; } //mOIDFiledName為要獲取列的列名
5.去除"Drag a Column Header Here To Group by that Column"
解決:修改屬性Gridview->Option View->Show Group Panel=false,就好了
6.在gridcontrol中新增checkbox核取方塊
解決:gridview->run designer->columns->選擇要變成核取方塊的那一列->column edit->new(在這裡可以選擇很多型別)
載入checkbox資料時,費了一點時間,checkbox的核取方塊怎麼點選,一失去焦點是,選擇的操作就無效了,問題就出在datatable的繫結上了,一定要繫結一個布林的型別。
程式碼如下:
private void FrmCreateLegend_Load(object sender, EventArgs e) { IFeatureLayer pFeatureLayer; IDataset pDataset; string pName; DataTable pDatatable = new DataTable(); pDatatable.Columns.Add("圖層名稱", System.Type.GetType("System.String")); pDatatable.Columns.Add("選擇", System.Type.GetType("System.Boolean")); DataRow pDataRow; object[] rowArray = new object[2]; for (int i = 0; i < mFeatureLayers.Count; i++) { pDataRow = pDatatable.NewRow(); pFeatureLayer = mFeatureLayers[i] as IFeatureLayer; rowArray[0] = pFeatureLayer.Name; rowArray[1] = false; pDataRow.ItemArray = rowArray; pDatatable.Rows.Add(pDataRow); } this.gridMark.DataSource = pDatatable; this.gridMark.Refresh(); }
注意:建立的datatable的列名一定要和gridview中的列的fieldname屬性值是一個名字,不然,你會發現新增了和你繫結的datatalbe一樣多的行,可是行裡面卻沒有內容的。
7.多選
解決:GridControl->GridView->屬性->OptinosSelecttion->MultiSelect
8.不顯示子表資訊
解決:當我們對DataTable建立父子關係後,將父表繫結在Grid上,會造成關係列上有加號顯示,並且可以展開。如果你覺得展開的資訊對你沒有意義的話,是可以關掉的。這是需要修改屬性
Gridview->Option View->ShowDetailButtons=false
文章轉載自:DevExpress控制元件中文網 [http://www.devexpresscn.com/]