DevExpress GridControl使用方法总结

合集下载

devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显。。。

devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显。。。

devexpress表格控件gridcontrol设置隔⾏变⾊、焦点⾏颜⾊、设置(改变)显。

介绍⼀些常⽤的gridcontrol设置。

1、设置隔⾏变⾊。

⾸先设置显⽰隔⾏变⾊,步骤:OptionsView-->EnableAppearanceEvenRow-->true和OptionsView-->EnableAppearanceOddRow-->true;然后设置奇数⾏和偶数⾏样式颜⾊等:Appearance-->EvenRow和Appearance-->OddRow。

设计完成后,设计器出现隔⾏变⾊效果,如图:2、设置奇偶⾏样式时,会看到其他⾏样式。

Appearance-->FoucsedRow就是焦点⾏颜⾊,设置后可突出显⽰焦点⾏样式,如图所⽰:3、设置显⽰值,有个两种⽅法。

第⼀种可以在如图所⽰地⽅设置,列显⽰出来就会加上单位元;⽤的最多的⼀般是设置⽇期样式yyyy年MM ⽉dd⽇:第⼆种可使⽤代码改变,代码如下:/// <summary>/// 改变显⽰值/// </summary>private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e){if (e.Column.FieldName == "A3"){if (e.Value.ToString() == "1")e.DisplayText = "男";elsee.DisplayText = "⼥";}}4、有时表格列太多,需要拖动查看,但是⼜希望某些列能始终固定不移动。

这个时候就可以设置该列为固定列了,属性如图所⽰:5、运⾏效果图:附加内容:根据条件改变⾏的样式(字体颜⾊、背景颜⾊、渐变⾊)private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e){int hand = e.RowHandle;//⾏号if(hand<0){return;}DataRow dr = gridView1.GetDataRow(hand);if (dr == null)return;//int selectedHandle = gridView1.GetSelectedRows()[hand];if (gridView1.GetRowCellValue(hand, "CODE").ToString().Contains("5")){e.Appearance.ForeColor = Color.Red;//字体颜⾊e.Appearance.BackColor=Color.Linen;//⾏背景颜⾊//e.Appearance.BackColor2 = Color.Blue;//渐变颜⾊}}。

DevExpress控件的GridControl控件小结

DevExpress控件的GridControl控件小结

目录1. DevExpress控件组中的GridControl控件不能使横向滚动条有效。

(2)2. 使单元格不可编辑。

(2)3. 没有下拉滚动条事件怎么办? (2)4. 获取选定行,指定列单元格的内容 (2)5. 去除"Drag a Column Header Here To Group by that Column" (3)6. 在gridcontrol中添加checkbox复选框 (3)7. 单元格合并问题 (4)8. gridView 奇行与偶行交替变色 (4)9. girdView在第一列显示行号 (4)10. 选中某列进行排序时,如何让该列高亮显示 (5)11. XtraGrid冻结列 (5)(由于开始使用DevExpress控件了,所以要点滴的记录一下)1.DevExpress控件组中的GridControl控件不能使横向滚动条有效。

现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容。

解决:gridView1.OptionsView.ColumnAutoWidth属性是true,即各列的宽度自动调整,你把它设成false,就会出现了。

2.使单元格不可编辑。

gridcontrol -->gridview -->OptionsBehavior -->Editable=false3.没有下拉滚动条事件怎么办?现象:因为需要加载大数据量数据,所以不能一次把所有数据读入datatable进行绑定,所以决定在用户进一步浏览数据时进行数据的实时加载工作,就是每当用户拉动滚动条时,多加载一些数据进入datatable.没有找到合适的滚动条事件,于是用这个事件代替了,非常合适我的需求.TopRowChanged事件.4.获取选定行,指定列单元格的内容private string GetSelectOID(){int[] pRows = this.gridView1.GetSelectedRows();if (pRows.GetLength(0) > 0)return gridView1.GetRowCellValue(pRows[0], mOIDFiledName).ToString ();elsereturn 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] = ;rowArray[1] = false;pDataRow.ItemArray = rowArray;pDatatable.Rows.Add(pDataRow);}this.gridMark.DataSource = pDatatable;this.gridMark.Refresh();}注意:创建的datatable的列名一定要和gridview中的列的fieldname属性值是一个名字,不然,你会发现添加了和你绑定的datatalbe一样多的行,可是行里面却没有内容的.第三方控件GridControl 使用技巧自开始接触此第三方控件至今三个月,经常使用,三个月中碰到一些问题,一一解决,如是现在整理使用的内容:7.单元格合并问题(1)窗体加载时ceMerging.Checked = gridView1.OptionsView.AllowCellMerge;(2)添加事件private void ceMerging_CheckedChanged(object sender, EventArgs e){gridView1.OptionsView.AllowCellMerge = ceMerging.Checked;}8.gridView 奇行与偶行交替变色this.gridView1.OptionsView.EnableAppearanceEvenRow = true;this.gridView1.OptionsView.EnableAppearanceOddRow = true;this.gridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));eBackColor = true;this.gridView1.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));eBackColor = true;9.girdView在第一列显示行号//调整第一列的宽度this.gridView1.IndicatorWidth = 40;//添加监听事件this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.gridView1_Custom DrawRowIndicator);//事件private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e){if (.IsRowIndicator && e.RowHandle >= 0){.DisplayText =Convert.ToString(Convert.ToInt32(e.RowHandle.ToString())+1);}}10.选中某列进行排序时,如何让该列高亮显示在gridView1的"EndSorting"事件中加入以下代码private void gridView1_EndSorting(object sender, EventArgs e){Color clr = gridView1.Appearance.Row.BackColor;foreach (DevExpress.XtraGrid.Columns.GridColumn dc in gridView1.Columns){if (dc.VisibleIndex == gridView1.SortedColumns[0].VisibleIndex){dc.AppearanceCell.BackColor = Color.Red;}else{dc.AppearanceCell.BackColor = clr;}}}11.XtraGrid冻结列XtraGrid的GridView中的Columns里面有Fixed属性Devpress.XtraGrid.GridControl1,增加新行用InitNewRow事件,给新行某字段赋值。

DevExpress之GridControl控件小知识

DevExpress之GridControl控件小知识

DevExpress之GridControl控件⼩知识DevExpress之GridControl控件⼩知识⼀.当代码中的DataTable中有建数据关系时,DevExpress 的 GridControl 会⾃动增加⼀个⼦视图 .列名也就是⼦表的字段名 ,按下⾯⽅法⾃定义⼦视图DevExpress控件,当Table建⽴关系后,⼦表显⽰的Grid设置,在不设置的情况下默认显⽰⼀个Grid,但列头的名字为数据源的列名需要更改列头的描述必须⾃定义⼀个Grid,步骤:1.[Clike here to create a new leve]点击此处创建⼀个Leve2.单建刚建出的Leve右边的[Click here to change view]选择⼀个View类型3.为GridControl增加LeveDefault,例如:MyGridControl.LevelDefaults.Add(RelationName,gridview);RelationName:DataSet中关系名gridview:第⼆步建⽴的GridView的名称⼆.DevExpress⼦视图的访问--当需要访问⽗视图中的⾏对应的⼦视图中的数据DevExpress.XtraGrid.Views.Grid.GridView bv =(DevExpress.XtraGrid.Views.Grid.GridView) gvMain.GetDetailView(MyGridControl.FocusedRowHandle,0) ; //0是关系索引for(int i=0 ;i<bv.DataRowCount ;i++){bv.GetDataRow(i)["列名"] = 值 ;}三.视图中的列为DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit 类型,但不想让⽤户看到下拉按钮编辑DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit控件,找到属性Buttons ,删除⾥⾯所有Button四.DevExpress设置控件脚处的汇总格式DevExpress控件SummaryItem.DisplayFormat={0:#} (数值类型)==================================================================devexpress 显⽰⾏号为XtraGrid的GridView加⾏号。

devexpressgridcontrol部分用法

devexpressgridcontrol部分用法

devexpressgridcontrol部分用法GridControl赋值:this.GridControl1.DataSouce=dt;2、GridContro总合计及分组合计:常规总合计直接RunDesigner-Group Summary ItemsDisplayFormat 设置显示格式如:{0:P}表示显示为百分号模式。

如数据源中为0.5。

表示出来为50%FieldName 设置显示的对应列ShowInGroupColumnFooter 在那一列下面显示SummaryType 合计方式。

选择Custom表示自定义。

CustomSummaryCalculate事件可处理View Code//Footer行自定义列合计1 GridView view = sender as GridView;2 if (e.Item == view.Columns["RateZk"].SummaryItem)3 {4 decimal x =Convert.ToDecimal(view.Columns["RetailFAmount"].Summary Item.SummaryValue);5 decimal y =Convert.ToDecimal(view.Columns["RetailAmount"].SummaryItem.SummaryValue);6view.Columns["RateZk"].SummaryItem.DisplayFormat = "{0:P}";7 if (y != 0)8 e.TotalValue = x / y;9 else10 e.TotalValue = 0;11 }View Code//分组行自定义合计列1 if (e.IsGroupSummary)2 {3 Hashtable ht =view.GetGroupSummaryValues(e.GroupRowHandle);45 foreach (DictionaryEntry entry in ht)6 {7 GridGroupSummaryItem sumItem = entry.Key as GridGroupSummaryItem;8 if (sumItem.FieldName.Equals("RetailFAmount"))9 retailFAmount =Convert.ToDecimal(entry.Value);10 }11 if(e.Item.ToString().Contains(view.Columns["RateZk"].Summary Item.FieldName))12 e.TotalValue = retailFAmount3、GridContro导出Excel操作:View Code1 SaveFileDialog saveFileDialog = new SaveFileDialog();2 saveFileDialog.Title = "导出Excel";3 saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";4 DialogResult dialogResult =saveFileDialog.ShowDialog(this);5 if (dialogResult == DialogResult.OK)6 {7 this.gvbrowse.OptionsPrint.AutoWidth = false; //设置导出的Excel自动调整列宽,列宽和控件的列宽一致8this.gcbrowse.ExportToXls(saveFileDialog.FileName);9//this.gcbrowse.ExportToXlsOld(saveFileDialog.FileName);//这个方法默认会自动调整列宽,但是office10以上版本有的会报错10 DevExpress.XtraEditors.XtraMessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, rmation);11 this.gvbrowse.OptionsPrint.AutoWidth = true;12 }4、GridControl列要显示百分号:Run Designer-Columns列FormatType="Numeric" FormatString="p"5、gridView1.OptionsView.ShowGroupPanel = false; 不显示分组面板6、gridView1.OptionsBehavior.Editable=false; 数据只读7、设置列时间格式:Formatstring="yyyy-MM-dd HH:ss:mm"; FormatType="Numeric";设置列数字格式:Formatstring="N2";(数据格式:F表浮点,N表整数,数字表示保留几位小数。

DevExpress中GridControl的属性设置及动态绑定数据和全选取消全选

DevExpress中GridControl的属性设置及动态绑定数据和全选取消全选

DevExpress中GridControl的属性设置1. 隐藏最上面的GroupPanelgridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读gridView1.OptionsBehavior.Editable=false;4.不显示MasterDetailViewgridView1.OptionsDetail.EnableMasterViewMode=false;5.修改最上面的GroupPanel内容gridView1.GroupPanelText="CSDN";6.数据绑定:FieldName --数据库的字段名称7.读写拷贝权限设置ColumnView.EditableThis property returns a value of the ColumnViewOptionsBehavior.Editable option不可写ColumnViewOptionsBehavior.EditableGets or sets whether end users are allowed to invoke cell editors可读可写OptionsColumn.AllowEditGets or sets whether end users are allowed to invoke editors for the column's cells.可读可写只有ColumnViewOptionsBehavior.Editable=True 设置OptionsColumnAllowEdit 才有意义。

OptionsColumn.ReadOnlyGets or sets whether end-users are prevented from editing the column's cell values.可读可写只读不可拷贝:ColumnViewOptionsBehavior.Editable = False只读可拷贝:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = True可编辑:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = False获取选中行的值代码:private void gridData_FocusedRowChanged(object sender,DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e){_id=GWEntLib.Utilities.Mix.ConvertUtils.ToInt32(gridData.GetRowCellValu(e.Focu sedRowHandle, "Id"));_emrFileReadList = EMRTemplateFileReadList.GetEMRTemplateFileReadList(_id);gridVersonData.DataSource = _emrFileReadList;}响应事件:FocusedRowChanged获取字段值:gridData.GetRowCellValue(e.FocusedRowHandle, "Id")注意:FocusedRowChanged是Gridview的事件而不是gridControl的事件gridControl与Gridview的区别:前者是容器,后者为视图全选/取消全选private void Form1_Load(object sender, EventArgs e){String str =@”select cast( 0 as bit ) 选择,ID,NameFrom ”DataTable dt =new DataTable();dt =SqlHelper.ExecuteDataset(str).Tables[0];gridView.DataSource =dt;}#region全选private void tsbSelectAll_Click(object sender, EventArgs e){for (int i = 0; i < gridView.RowCount; i++){gridView.SetRowCellValue(i, gridView.Columns.ColumnByFieldName("选择"), true);}}#endregion#region取消全选private void tsbUnSelectAll_Click(object sender, EventArgs e){for (int i = 0; i < gridView.RowCount; i++){gridView.SetRowCellValue(i, gridView.Columns.ColumnByFieldName("选择"), false);}}#endregion。

DevExpress控件之GridControl控件(代码篇)

DevExpress控件之GridControl控件(代码篇)

DevExpress控件之GridControl控件(代码篇)Developer Express(以下简称dev) 这个第三⽅控件是VS2005⾃带的datagridview控件的重写版本.对于⼀些grid外观,模板列的设置有⾮常简单的⽅法.⽽且控制起来基本和 datagridview⼀样.所以还是⽐较⽅便的.把dev控件拖到窗体以后,会发现多了两个控件gridcontrol1,gridview1,下⾯针对这期间使⽤dev的⼀些总结写在下⾯(主要是连接数据库,绑定字段和模板列的设置):1. 设置数据源:string sql = "select fid,fname from dual";DataTable dt = DALUse.Query(sql).Tables[0];gridControl1.DataSource = dt;*:Daluse是项⽬数据库连接基类,不⽤特别理会2.绑定字段:这部分⼯作主要是在Designer中进⾏的,dev的Designer设计器提供了⾮常⽅便的设置⽅式.我么可以省去敲代码,直接在设计器中就可以完成了.在左边选Columns,添加完列以后,在列的FieleName属性添加你要绑定列的字段名(ps:⽐如我的连接SQL语句是:select fid,fname from dual.我想要把fid绑定到列1.那就在列1的FieldName属性写FID就可以了 ),这⾥有⾮常重要的⼀点,对于Oracle数据库,所有的在设计器⾥写的程序中的字段名必须⼤写,否则可能绑定不上字段,sqlserver没有这个限制.通过代码其实也可以实现,具体代码如下:gridView1.Columns[0].FieldName = "FID";*:gridcontrol只⽤在设置数据源,以后的操作⼤多都有gridview这个控件了.他们是⼀体的,可以在页⾯的设计代码中找到将他们关联的⼀句话,这是系统⾃动写的:gridcontrol1.mainview=this.gridview1.2. 模板列的设置:模板列可以很轻松的让⽤户实现在表格中进⾏查找编辑.同样,这部分⼯作在dev的Designer中进⾏.在左边选In-Place Editor Repository,上⾯的ADD提供了⽐较丰富的模板列类型,从中选取⼀个就可以了.模板列建好以后就要和我们当前有的数据列进⾏绑定了.返回到 Columns中,假如列1是我们想设定的,在他的属性中找到ColumnEdit.选择我们加进去的模板列就可以了.对于模板列我们最常⽤的还是 LookUpEdit.这⾥简单说下他的设置和⽤法:LookUpEdit是弹出的⼀个⼩的grid,从它⾥⾯我们可以实现⾃动筛选⾥⾯的信息.⾸先从In-Place Editor Repository中添加LookUpEdit.取名为Re1.然后.在他的Columns属性中添加3列.Caption依次为:编号,姓名,性别.FieldName依次为:FID,FNAME,FSEX.然后将Re1的NullText设置成空.AutoSearchColumnIndex属性设置为2.ImmediatePopup属性设置为True.SearchMode设置为OnlyInPopup.然后将这个模板列附加到我们上⾯提到的列1(也就是将列1的ColumnEdit属性设成Re1)最后我们还要在代码⾥⾯给Re1绑定数据源和显⽰项.Re1.DataSource = DALUse.Query("select fid,fname,fsex from dual").Tables[0];Re1.DisplayMember = "FSEX";Re1.ValueMember = "FNAME";*:对于Oracle数据库字段⼀定要⽤⼤写,切记!!⾄此,我们的LookUpEdit模板列就设置完成了,它现在已经实现了通过性别列检索,然后将姓名列附到我们的列1上.对于LookUpEdit可以实现过滤主要是AutoSearchColumnIndex和SearchMode属性.可以参见帮助知道它们的⽤法: ms-help://v7.2/DevExpress.XtraEditors/DevExpressXtraEditorsControlsSearchModeEnumtopic.htmPs://去掉上⾯的筛选条gridView1.OptionsView.ShowGroupPanel = false;//设某⼀列只读或者不可编辑gridView1.Columns[0].OptionsColumn.AllowEdit = false;gridView1.Columns[0].OptionsColumn.ReadOnly = false;// 设某⼀列⽂字和标题局中显⽰ gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment =DevExpress.Utils.HorzAlignment.Center;gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;//去掉某⼀列上⾯的⾃动筛选功能(Filter) gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;gridView1.Columns[0].OptionsFilter.AllowFilter = false; gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoFilter = false; //设置冻结列(左冻结)gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;//得到单元格数据(0⾏0列)string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);//设置单元格数据(将0⾏0列的单元格赋值123)gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");//⼿动添加dev的列DevExpress.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn ();Col1.FieldName="FID";Col1.Visible=true;Col1.VisibleIndex=gridView1.Columns.Count;gridView1.Columns.Add(Col1);//设置⾃动增加的⾏号,需要先添加给gridview添加事件CustomDrawRowIndicatorprivate void gridview_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e){if (.IsRowIndicator && e.RowHandle >= 0).DisplayText = (e.RowHandle + 1).ToString();}//添加datatable数据⾏,数据列DataTable dt = new DataTable();dt.Columns.Add("Col1");DataRow dr = dt.NewRow();dr[0] = "123";dt.Rows.Add(dr);*以上这些都可以在Designer中进⾏设置,⽽不⽤去敲代码对于第三⽅控件的整体修改和保存,具体说明如下:1. 删除: (修改了dgvdel⾥的datagridviewdel⽅法)public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv){if (MessageBox.Show("你确定要删除选中的记录吗?", "删除提⽰", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes){int iSelectRowCount = Mydgv.SelectedRowsCount;if (iSelectRowCount > 0){Mydgv.DeleteSelectedRows();}}}2. 新增: (对于新增,其本⾝的AddNewRow⽅法就可以做到)private void btn_add_Click(object sender, EventArgs e){gridView1.AddNewRow();}具体如果对于新加⾏还有什么特别的设置,可以在它gridView1_InitNewRow事件中填写:private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e){ColumnView View = sender as ColumnView;View.SetRowCellValue(e.RowHandle, View.Columns[0],gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //复制最后⼀⾏的数据到新⾏ View.SetRowCellValue(e.RowHandle, View.Columns[1],gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //复制最后⼀⾏的数据到新⾏ }3. 保存 (第三⽅控件提供的RefreshData和RefreshDataSource⽅法对于保存数据都不好使,最后还是使⽤了Dgvsave的datagridviewsave⽅法,⽤这个⽅法就可以)注:代码中出现多gridView1全为第三⽅控件的gridView.⽰例:去掉上⾯的”Drag a column header here to group by that column”我们拖动⼀个gridcontrol控件后,在出现上会出现⼀下效果:他默认的好多地⽅都是⽤英⽂表⽰出来的,所以我们得⽤⼀些相关的属性设置来达到我们实际想要达到的效果.⾸先就是要去掉上⾯的⼀个英⽂条”Drag a column header here to group by that column”.我们可以通过⼿⼯设置和代码编写来实现,以后针对第三⽅控件的属性都可以⽤这两种⽅法来实现.⼿⼯设置:点击左下⾓的”Run Designer”按钮.这样我们就进⼊了Dev的设计器(所有的对于控件的控制都可以在这⾥设置).然后点击左边的Main选项卡中的 Views项.有边栏⽬⾥会出现N多属性,我们找到OptionViews,展开它,然后将⾥⾯的ShowGroupPanel属性设成false就OK 了.代码编写:我们可以直接在构造函数或者页⾯的打开事件中写⼊代码:gridView1.OptionsView.ShowGroupPanel = false;两种⽅法可以达到同样的效果.设置外观接下来我们来设置它的外观.Dev给我们提供了很多外观的模板,这样使得我们不⽤在通过复杂的代码来设置他的外观,我们直接⽤⼿⼯设置就可以完成了!点击Dev设计器中左边的Appearance选项卡的Style Schemes项:通过在⾥⾯设置外观,然后点击右⼩⾓的Apply按钮就可以很轻松的设置各种各样的外观了.去掉控件默认的Filter功能出现英⽂的情况我们按照上⾯所讲的⽅法给Dev添加列后,在点击列头的⼩按钮的时候会出现这样的效果(出现了我们不想看到的英⽂):这个对于我们来说是⽐较讨厌的.我们可以在Dev的设计器中消灭它.点击设计器中左边的Main选项卡的Columns项.选择你想设置的列,然后点击右上⾓他们的选项卡:选择Filter options选项卡,然后将⾥⾯的AllowAutoFilter,AllowFilter,ImmediateUpdateAutoFilter属性分别设成false就可以了.这样这列的AutoFilter功能就去掉了(仅限于这列)!如果你够细⼼的话,你会发现上⾯的选项卡Column options⾥⾯的属性也都是特别使⽤的:这⾥⾯的属性不⽤说,我想你也知道怎么⽤了(他也是只针对⼀列设置的).关闭右键点击列头会出现英⽂的情况:在Dev的设计器中选择左边Main选项卡中的Views项.找到OptionsMenu,然后展开,将⾥⾯的EnableColumnMenu设成false就可以了.。

DevExpress控件使用经验总结

DevExpress控件使用经验总结

DevExpress控件使用经验总结DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet 界面控件。

本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结。

总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果。

本文主要通过给出相应的例子以及相关界面效果来说明问题,希望大家能够从中获得好的知识和思路。

1、应用Office2007和Office2010的界面主题开始使用DevExpress的时候,发现程序界面效果好像没有出现Office的样式,只是有几种可怜的内置效果。

经过查找发现需要在入口函数里面添加几行代码,如下所示。

erSkins.OfficeSkins.Register();erSkins.BonusSkins.Register();DevExpress.Skins.SkinManager.EnableFormSkins();指定界面主题效果,可以通过代码设置,指定主题的名称即可。

UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");或者在界面中添加一个控件 DefaultLookAndFeel,设置其对应的界面效果即可实现整个设计时刻和运行时刻的界面效果,如下图所示。

2、Properties属性DevExpress很多控件的一般属性,会放置在该属性下面,如ComboBox下拉列表的属性操作如下private void InitDictItem(){this.txtManufacture.Properties.Items.Clear();this.txtManufacture.Properties.Items.AddRange(DictItemUtil.GetDictByDictType("供货商"));}这是一个很丰富属性的归类,很多常用的属性基本上都囊括在这里了,如果你是从传统界面转换过来DevExperss开发,找不着相关的属性,尽管来这里看看。

DevExpress用法总结大全

DevExpress用法总结大全

DevExpress用法总结大全使用DevExpress控件来做项目开发已经有很长一段时间了,在摸索开发到客户苛刻要求的过程中,其中碰到过很多问题需要解决的,随着一个个问题的解决,也留下很多对DevExpress控件的使用经验及教训,综合设计到的多个项目的问题,对这些开发常用的要点进行总结,方便别人也方便自己。

提供这些解决方法,一个可以快速应用到项目中,二个也可以作为对界面开发的更高要求对待自己的项目,使得自己的东西更加完美,更加受欢迎。

1、 GridControl控件的数据显示的样式控制DevExpress控件开发常用要点总结如上两图所示,我们有时候需要控制列表访问过的颜色变化,或者是时间显示格式等内容,这个时候设置GridView的RowCellStyle即可实现,如下所示。

this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(gridView1_RowCellStyle);void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e){if (e.Column.FieldName == "PublishType"){if (e.CellValue != null && e.CellValue.ToString() == "中介"){e.Appearance.BackColor = Color.DeepSkyBlue;e.Appearance.BackColor2 = Color.LightCyan;}}if (e.Column.FieldName == "PublishTime"){e.Column.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";}if (e.Column.FieldName == "Title"){string id = this.winGridViewPager1.gridView1.GetRowCellDisplayText(e.RowHandle, "Id");if (historyDict.ContainsKey(id)){e.Appearance.BackColor = Color.DeepSkyBlue;e.Appearance.BackColor2 = Color.LightCyan;}}}2、在LayoutControl布局中固定控件宽度DevExpress控件开发常用要点总结固定宽度后的真实效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、如何解决单击记录整行选中的问题
View->OptionsBehavior->EditorShowMode 设置为:Click
二、如何新增一条记录
(1)、gridView.AddNewRow()
(2)、实现gridView_InitNewRow事件
三、如何解决GridControl记录能获取而没有显示出来的问题gridView.populateColumns();
四、如何让行只能选择而不能编辑(或编辑某一单元格)
(1)、View->OptionsBehavior->EditorShowMode 设置为:Click
(2)、View->OptionsBehavior->Editable 设置为:false
五、如何禁用GridControl中单击列弹出右键菜单
设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false 六、如何隐藏GridControl的GroupPanel表头
设置Run Design->OptionsView->ShowGroupPanel 设置为:false 七、如何禁用GridControl中列头的过滤器
过滤器如下图所示:
设置Run Design->OptionsCustomization->AllowFilter 设置为:false 八、如何在查询得到0条记录时显示自定义的字符提示/显示
如图所示:
方法如下:
//When no Records Are Being Displayed
private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e)
{
//方法一(此方法为GridView设置了数据源绑定时,可用)
ColumnView columnView = sender as ColumnView;
BindingSource bindingSource = this.gridView1.DataSource as BindingSource;
if(bindingSource.Count == 0)
{
string str = "没有查询到你所想要的数据!";
Font f = new Font("宋体", 10, FontStyle.Bold);
Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5);
e.Graphics.DrawString(str, f, Brushes.Black, r);
}
//方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法) if (this._flag)
{
if (this.gridView1.RowCount == 0)
{
string str = "没有查询到你所想要的数据!";
Font f = new Font("宋体", 10, FontStyle.Bold);
Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5);
e.Graphics.DrawString(str, f, Brushes.Black, r);
}
}
}
九、如何显示水平滚动条?
设置this.gridView.OptionsView.ColumnAutoWidth = false;
十、如何定位到第一条数据/记录?
设置this.gridView.MoveFirst()
十一、如何定位到下一条数据/记录?
设置this.gridView.MoveNext()
十二、如何定位到最后一条数据/记录?
设置this.gridView.MoveLast()
十三、设置成一次选择一行,并且不能被编辑
this.gridView1.FocusRectStyle =
DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; this.gridView1.OptionsBehavior.Editable = false;
this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
十四、如何显示行号?
this.gridView1.IndicatorWidth = 40;
//显示行的序号
private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
if (.IsRowIndicator && e.RowHandle>=0)
{
.DisplayText = (e.RowHandle + 1).ToString();
}
}
十五、如何让各列头禁止移动?
设置gridView1.OptionsCustomization.AllowColumnMoving = false;
十六、如何让各列头禁止排序?
设置gridView1.OptionsCustomization.AllowSort = false;
十七、如何禁止各列头改变列宽?
设置gridView1.OptionsCustomization.AllowColumnResizing = false;。

相关文档
最新文档