由於近期要使用gridcontrol控件,整理出來,以便以後參考:
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
收集相關資料