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