DevExpress GridView 的编辑性设置
1. gridView 选中可编辑
- 设置 grid 可选中,即在设计器中将
ShowSelectionColumn
属性设置为 true(默认为 false)
或者在在 load 事件或者其他出使用this.efDevGrid1.ShowSelectionColumns = true;
来设置 - 注册
gridView1_ShowingEditor
事件,在事件中添加如下代码private void gridView1_ShowingEditor(object sender, CancelEventArgs e) { //打钩列不做处理 if (gridView1.FocusedColumn == efDevGrid1.SelectionColumn) return; //若焦点行选中,则可编辑;否则不可编辑 if (efDevGrid3.GetSelectedColumnChecked(bandedGridView1.FocusedRowHandle)) e.Cancel = false; else e.Cancel = true; }
2. 选中也不可编辑
- 将 grid 的
ShowSelectionColumn
属性设置为false;或者在 load 事件中添加:efDevGrid1.ShowSelectionColumn = false;
,建议在设计器中设置; - 设置 grid 数据源,并设置 gridView 列的可编辑性
//方法一 for(int idx = 0; idx < gridView1.Columns.Count; idx++) { gridView1.Columns[idx].OptionsColumn.AllowEdit = true; } //方法二 foreach (DevExpress.XtraGrid.Columns.GridColumn col in gridViewLeft.Columns) { col.OptionsColumn.AllowEdit = true; }
- 然后设置 grid 的打钩列:
efDevGrid1.ShowSelectionColumn = true;
- 另一种方法与1方法类似,设置 grid 的
ShowSelectionColumn
为 true,并注册gridView1_ShowingEditor
事件,并添加以下逻辑即可:private void gridView1_ShowingEditor(object sender, CancelEventArgs e) { //打钩列不做处理 if (gridView1.FocusedColumn == efDevGrid1.SelectionColumn) return; //除打钩列以外,其他均不允许编辑 e.Cancel = true; }
3. 全局禁用可编辑
设置属性:gridView1.OptionsBehavior.Editable = false;
4. 关于 grid 的单选和多选问题
//允许多选
efDevGridLeft.EFMultiSelect = true;
//不允许多选,只能选择一笔
efDevGridLeft.EFMultiSelect = false;
注:
- 本文中提到的 gridView1 为 efDevGrid1 的 MainView ,即
efDevGrid1.MainView = gridView1
。 - 设置 efDevGrid1 的打钩列也可使用
ShowSelectedColumn
属性。