DevExpress gridcontrol使用心得

1.//允许自动合并单元格
gv1.OptionsView.AllowCellMerge = true;设置某列不合并选中该列,在OptionsColumns-->AllowMerge中设置为false即可

2.绑定点击columns,选择添加创建新的gridcolunmn,fieldName:数据库中要绑定的字段Caption:描述 

3.使单元格不可编辑。
gridcontrol -->gridview -->OptionsBehavior -->Editable=false
或者readonly=true也可以

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

 

9.隐藏最上面的GroupPanel

  gridView1.OptionsView.ShowGroupPanel=false;

10.得到当前选定记录某字段的值

  sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();

11.数据只读

  gridView1.OptionsBehavior.Editable=false;

12.不显示MasterDetailView

gridView1.OptionsDetail.EnableMasterViewMode=false;

13.修改最上面的GroupPanel内容

gridView1.GroupPanelText="柳生飘絮";

14.数据绑定:

FieldName --数据库的字段名称

15.读写拷贝权限设置

ColumnView.Editable
    This property returns a value of the ColumnViewOptionsBehavior.Editable option
    不可写
ColumnViewOptionsBehavior.Editable
    Gets or sets whether end users are allowed to invoke cell editors
    可读可写

OptionsColumn.AllowEdit
    Gets or sets whether end users are allowed to invoke editors for the column's cells.
    可读可写
    只有ColumnViewOptionsBehavior.Editable = True设置OptionsColumn.AllowEdit才有意义

OptionsColumn.ReadOnly
    Gets or sets whether end-users are prevented from editing the column's cell values. 
    可读可写

16.在GridView的CustomDrawRowIndicator事件中添加如下代码:

 private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  {
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
            {
                e.Info.DisplayText =  e.RowHandle.ToString();
            }
}
要调整行号列的宽度只需要调整gridview1.IndicatorWidth=35属性即可(注意改属性不是在上面的事件中设置)

你可能感兴趣的:(DevExpress gridcontrol使用心得)