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控件小结
目录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控件⼩知识⼀.当代码中的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部分用法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的属性设置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控件(代码篇)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是一个比较有名的界面控件套件,提供了一系列的界面控件套件的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控件的使用经验及教训,综合设计到的多个项目的问题,对这些开发常用的要点进行总结,方便别人也方便自己。
提供这些解决方法,一个可以快速应用到项目中,二个也可以作为对界面开发的更高要求对待自己的项目,使得自己的东西更加完美,更加受欢迎。
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控件开发常用要点总结固定宽度后的真实效果。
gridcontrol控件学习总结
GridControl(基于GridView)总结gridControl设计器设计器中左边导航部分Views是用于设计gridControl的布局,Columns是用于设计gridControl中列,列属性中的Name是指列明,FileName是指对应的数据库字段(实体类、BaseValue)的名称,Caption是指定列标题显示文本(类似TextBox中的Text属性)。
Appearances是设计控件的外观样式。
注:options(选项)下的属性用于设置页面布局。
gridControl绑定DevExpress中的控件绑定数据源时,都不需要调用DataBind()方法。
this.gridControl1.DataSource = getGoodsInfo.GetGoodsInfoDT(typeId); 注:使用泛型集合绑定数据源,在GridView中实现自动添加行时,AddNewRow()方法不起效。
在获取数据行时,GetDataRow()方法报错。
如果使用gridcontrol用于只呈现数据可以使用泛型集合作为数据源,如果涉及到增、删、改建议使用DataTable作为数据源,这样以上两个方法可以正常使用。
gridControl实现自动添加行this.gridView1.AddNewRow(); //only one line codegridControl获取修改行的数据gridControl常用函数介绍GetDataRow() 用于获取指定索引的行。
GetFocusedRowCellValue() 获取鼠标选中行的某列值。
GetRowCellValue() 获取某行某列的值。
关于XtraGrid的使用(GridControl小结)DevExpress XtraGrid的使用(AspxGridControl小结)收藏自定义焦点行的方法gridView_bcode.FocusedRowHandle = focuseRowInt; //通过设置GridView 的FocusedRowHandle属性view plaincopy to clipboardprint?获取焦点行任意单元格的数据ColumnView cv = (ColumnView)gridControl_Gongzi.FocusedView;//重新获取此ID 否则无法从表头连删获取不到idint focusedhandle = cv.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(focusedhandle, "id");if (DBNull.Value != rowIdObj){FocusedRow_id = Convert.ToInt32(rowIdObj);}获取焦点行任意单元格的数据ColumnView cv = (ColumnView)gridControl_Gongzi.FocusedView;//重新获取此ID 否则无法从表头连删获取不到idint focusedhandle = cv.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(focusedhandle, "id");if (DBNull.Value != rowIdObj){FocusedRow_id = Convert.ToInt32(rowIdObj);}view plaincopy to clipboardprint?当数据发生变化时执行private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e){int intRowHandle = e.RowHandle;FocusedRow_bumen =Convert.ToString(gridView1.GetRowCellValue(intRowHandle, "bumen"));FocusedRow_xingming =Convert.ToString(gridView1.GetRowCellValue(intRowHandle, "xingming"));//FocusedRow_jibengongzi =Convert.ToDecimal(gridView1.GetRowCellValue(intRowHandle, "jibengongzi"));object rowJibengongziObj = gridView1.GetRowCellValue(intRowHandle, "jibengongzi");if (DBNull.Value != rowJibengongziObj){FocusedRow_jibengongzi = Convert.ToDecimal(rowJibengongziObj);}}当数据发生变化时执行private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e){int intRowHandle = e.RowHandle;FocusedRow_bumen =Convert.ToString(gridView1.GetRowCellValue(intRowHandle, "bumen"));FocusedRow_xingming =Convert.ToString(gridView1.GetRowCellValue(intRowHandle, "xingming"));//FocusedRow_jibengongzi =Convert.ToDecimal(gridView1.GetRowCellValue(intRowHandle, "jibengongzi"));object rowJibengongziObj = gridView1.GetRowCellValue(intRowHandle, "jibengongzi");if (DBNull.Value != rowJibengongziObj){FocusedRow_jibengongzi = Convert.ToDecimal(rowJibengongziObj);}} view plaincopy to clipboardprint?设置焦点行的焦点单元格的位置ColumnView view = (ColumnView)gridControl_Gongzi.FocusedView;view.FocusedColumn = view.Columns["bumen"];设置焦点行的焦点单元格的位置ColumnView view = (ColumnView)gridControl_Gongzi.FocusedView;view.FocusedColumn = view.Columns["bumen"]; view plaincopy to clipboardprint?当焦点行发生改变时执行获取选中焦点行idprivate void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e){int intRowHandle = e.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(intRowHandle, "id");if (DBNull.Value != rowIdObj)//做个判断否则获取不到id后报错{FocusedRow_id = Convert.ToInt32(rowIdObj);}}当焦点行发生改变时执行获取选中焦点行idprivate void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e){int intRowHandle = e.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(intRowHandle, "id");if (DBNull.Value != rowIdObj)//做个判断否则获取不到id后报错{FocusedRow_id = Convert.ToInt32(rowIdObj);}}view plaincopy to clipboardprint?焦点行的FocusedHandleFocuseRow_Handle = -999998;获取焦点行的handleColumnView newview = (ColumnView)gridControl_Gongzi.FocusedView;FocuseRow_Handle = newview.FocusedRowHandle;回车添加新行private void gridView1_KeyPress(object sender, KeyPressEventArgs e){if (e.KeyChar == 13){ColumnView view = (ColumnView)gridControl_Gongzi.FocusedView;if(view.IsLastRow){if (FocuseRow_Handle == 0){gridView1.AddNewRow();ColumnView newview =(ColumnView)gridControl_Gongzi.FocusedView;newview.FocusedColumn = newview.Columns["bumen"];//定位焦点网格的位置FocuseRow_Handle = newview.FocusedRowHandle;//获取新焦点行的FocuseRowHandle 并初始化全局变量FocuseRow_Handle供保存操作时判断是update还是insertGridcontrol的作用笔记girdView在第一列显示行号调整第一列的宽度this.gridView1.IndicatorWidth = 40;添加监听事件this.gridView1.CustomDrawRowIndicator += newDevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(thi s.gridView1_CustomDrawRowIndicator);//在非类里这段代码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);}}private void mnuLoad_Click(object sender, System.EventArgs e){// TODO: Load CustomersDatabase db = null;db = DatabaseFactory.CreateDatabase();DataSet ds = db.ExecuteDataSet(CommandType.Text,"SELECT ID,Name,Age From UserInfo");gridControl1.DataSource = ds.Tables[0];设置成一次选择一行,并且不能被编辑this.gridView1.FocusRectStyle =DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;设置列的标题gridView1.Columns[0].Caption = "编号";gridView1.Columns[1].Caption = "名称";gridView1.Columns[2].Caption = "年龄";设置列的名称,便于进行分组和Foot的统计等信息显示gridView1.Columns[0].Name = "ID";gridView1.Columns[1].Name = "Name";gridView1.Columns[2].Name = "Age";增加一个Group列进行分组this.gridView1.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] {newDevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryIte mType.Count, "ID", null, "(Count={0})")});增加一个Group列进行分组this.gridView1.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] {newDevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryIte mType.Max , "Age", null, "(Max={0})")});设置并制作Foot下面的统计信息this.gridView1.GroupFooterShowMode =DevExpress.XtraGrid.Views.Grid.GroupFooterShowMode.VisibleAlways;this.gridView1.OptionsView.ShowFooter = true;gridView1.Columns[2].SummaryItem.DisplayFormat = "(Age={0})";gridView1.Columns[2].SummaryItem.FieldName = "Age";gridView1.Columns[2].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Sum;}设置成cardview格式private void menuItem2_Click(object sender, EventArgs e){gridControl1.MainView = this.cardView1;}设置成GridView格式private void menuItem4_Click(object sender, EventArgs e){gridControl1.MainView = this.gridView1 ;}自己模仿着写吧,相信大家很快都会成为高手的。
devexpressgridcontrol更改子表的标题
devexpressgridcontrol更改子表的标题篇一:DevExpress的GridControl组件提供了多种方法来更改子表的标题。
以下是更改子表标题的步骤:1. 创建一个新的GridControl对象,以便更改子表的标题。
2. 获取要更改子表的列的数据。
3. 使用GridControl.GetRowCellRangeAddress方法获取子表的行和列。
4. 使用GridControl.GetCellRange方法获取要更改子表标题的行和列。
5. 使用GetCellRangeAddress方法将子表的标题更改为新标题。
6. 保存更改。
以下是一个简单的示例代码,演示如何使用DevExpress的GridControl更改子表的标题:```csharpusing System;using System.Windows.Forms;using DevExpress.WindowsForms.Controls;namespace MyFormName{public partial class MyForm : Form{private DevExpress.WindowsForms.GridControl gridControl;private DevExpress.WindowsForms.ColumnHeader cellTitle;private DevExpress.WindowsForms.RowHeader cellRow;public MyForm(){InitializeComponent();gridControl = new DevExpress.WindowsForms.GridControl();gridControl.ShowHeaderies = false;this.Controls.Add(gridControl);}private void btnChangeRowTitle_Click(object sender, EventArgs e) {// 获取要更改子表的列的数据var rows = gridControl.GetRowCount();var rowsToChange = rows > 1 ? rows : 0;// 获取要更改子表标题的行和列var currentRow = gridControl.GetRow(rowsToChange);var currentCell = currentRow.GetCell(0);var cellTitleRange = gridControl.GetRowCellRangeAddress(currentRow, 0, currentCell.Column);// 获取要更改子表标题的列的标题cellTitle =gridControl.GetColumnHeader(cellTitleRange.Column).Title;// 更改子表的标题gridControl.SetRowCellRangeAddress(currentRow, 0,currentCell.Column, cellTitle);// 保存更改gridControl.Save();}}}```在这个示例中,我们使用DevExpress的GridControl创建一个表格,并使用btnChangeRowTitle_Click 按钮来更改子表的标题。
dev的gridcontrol的用法 -回复
dev的gridcontrol的用法-回复"dev的gridcontrol的用法"是指开发中使用的GridControl控件的用法。
GridControl是DevExpress开发框架中的一个重要控件,用于展示和编辑表格数据。
本文将逐步介绍GridControl的使用方法,包括创建GridControl、数据绑定、列定义和数据操作等方面。
一、创建GridControl首先,我们需要在开发环境中导入DevExpress的控件库。
在项目中直接引用DevExpress.XtraGrid的程序集即可。
然后,我们可以在代码中使用以下语句来创建一个GridControl控件:GridControl gridControl = new GridControl();二、数据绑定接下来,我们需要将数据绑定到GridControl上。
GridControl支持多种数据源,包括DataTable、List、数组等。
下面是使用DataTable作为数据源的示例代码:DataTable dataTable = new DataTable();填充dataTable的数据...gridControl.DataSource = dataTable;在数据绑定之后,GridControl会自动根据数据源的结构创建对应的列。
三、列定义GridControl可以根据数据源自动创建列,但是我们也可以手动定义列的特性,例如显示名称、数据类型、编辑控件等。
下面是一个手动定义列的示例代码:GridColumn column = new GridColumn();column.FieldName = "Name";column.Caption = "姓名";column.Visible = true;column.VisibleIndex = 0;gridControl.Columns.Add(column);通过设置GridColumn的属性,我们可以灵活地控制列的显示和行为。
DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)
DevExpress使⽤教程:GridView经验⼩结(官⽅中⽂⽂献经典资料技巧)下⾯是笔者⾃⼰总结的使⽤ DevExpress Gridview 的⼀些经验⼩结,分享给⼤家:1、去除 GridView 头上的 "Drag a column header here to group by that column"--> 点击 Run Designer -> 找到:OptionView -> 将 ShowGroupPanel :设置为 false ;2、如何显⽰出 GridView ⾃带的搜索功能--> 点击 Run Designer -> 找到: OptionsFind -> 将AlwaysVisible :设置为 True3、如何将GridView的⼤⼩⾃适应窗体的⼤⼩--> 右键 GridView 控件 -> 属性 -> 找到 Dock :设置为 Fill4、当GridView数据源发⽣变化时,如何更改GridView所"绑定的值"Code注:其实就是重新创建了⼀个GridView的实例。
gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(gridControl1);gridControl1.MainView = gridView1;gridView1.OptionsView.ShowGroupPanel = false;gridView1.OptionsFind.AlwaysVisible = true;gridControl1.DataSource = dt;5、在GridControl 中添加checkbox复选框--> gridView -> run designer -> columns -> 添加⼀列(如果没有的话) 然后如图设置-- > 另外当我们需要动态绑定grid数据时,DataTable 中列的名字要和我们在gridview中设置的FileName名字要移植,不然数据是显⽰不出来的。
DevExpress GridControl使用
//不显示内置的导航条。
eEmbeddedNavigator = false;//不显示分组的面板gv1.OptionsView.ShowGroupPanel = false;gv2.OptionsView.ShowGroupPanel = false;//自动改变行高适应内容gv1.OptionsView.RowAutoHeight = true;gv2.OptionsView.RowAutoHeight = true;//允许自动合并单元格gv1.OptionsView.AllowCellMerge = true;//如果主从表中,没有找到从表内容也要显示(默认是不显示的)gv1.OptionsDetail.AllowExpandEmptyDetails = true;//显示自动筛选行(效果跟Excel的自动筛选差不多)gv2.OptionsView.ShowAutoFilterRow = true;//使得GridView不能编辑gv1.OptionsBehavior.Editable = false;gv2.OptionsBehavior.Editable = false;//内置编辑器显示的模式gv1.OptionsBehavior.EditorShowMode =DevExpress.Utils.EditorShowMode.Click;//主从表显示的功能是否可用//gv1.OptionsDetail.EnableMasterViewMode = false;//如果显示了主从表,每点开个加号,就会显示一个Tabs,里面往往显示了两个面板。
//事实上没必要这样干的。
一般选择关闭。
关闭的对象是主GridView的此项属性。
gv1.OptionsDetail.ShowDetailTabs = false;}private void btnExit_Click(object sender, EventArgs e){this.Close();}private void btnOk_Click(object sender, EventArgs e){//设置连接字符串DbHelperSQL.ConnectionString =DbHelperSQL.CreateConnectionString(@"BUDDHAS\SQLEXPRE SS", "sa", "00000", "RTDMES");DataSet ds = new DataSet();//父GridView的数据string sql = "select sc_prno,sc_prna from mespb04h";DbHelperSQL.QueryD(sql,ds,"main");//子GridView的数据sql = "select pa_name,pa_no,sc_prno from mespb09h";DbHelperSQL.QueryD(sql,ds,"son");//这个是显示主从表的关键,一、GridControl通过检查DataSet.Relations的内容来分析数据//二、关键名必须与设计GridView的层级关系的level name 相同,否则,结果在意料之外。
GridControl小结
GridControl小结关于XtraGrid的使用(GridControl小结)来源:51编程网发布时间:2010-04-19Hits:146DevExpress XtraGrid的使用(AspxGridControl小结)收藏自定义焦点行的方法: gridView_bcode.FocusedRowHandle = focuseRowInt; //通过设置GridView 的FocusedRowHandle属性view plaincopy to clipboardprint?//获取焦点行任意单元格的数据ColumnView cv = (ColumnView)gridControl_Gongzi.FocusedView;//重新获取此ID 否则无法从表头连删获取不到idint focusedhandle = cv.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(focusedhandle, "id");if (DBNull.Value != rowIdObj){FocusedRow_id = Convert.T oInt32(rowIdObj);}//获取焦点行任意单元格的数据ColumnView cv = (ColumnView)gridControl_Gongzi.FocusedView;//重新获取此ID 否则无法从表头连删获取不到idint focusedhandle = cv.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(focusedhandle, "id");if (DBNull.Value != rowIdObj){FocusedRow_id = Convert.T oInt32(rowIdObj);}view plaincopy to clipboardprint?//当数据发生变化时执行private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e){int intRowHandle = e.RowHandle;FocusedRow_bumen = Convert.T oString(gridView1.GetRowCellValue(intRowHandle, "bumen"));FocusedRow_xingming = Convert.T oString(gridView1.GetRowCellValue(intRowHandle, "xingming"));//FocusedRow_jibengongzi = Convert.T oDecimal(gridView1.GetRowCellValue(intRowHandle, "jibengongzi"));object rowJibengongziObj = gridView1.GetRowCellValue(intRowHandle, "jibengongzi");if (DBNull.Value != rowJibengongziObj){FocusedRow_jibengongzi = Convert.T oDecimal(rowJibengongziObj);}}//当数据发生变化时执行private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e){int intRowHandle = e.RowHandle;FocusedRow_bumen = Convert.T oString(gridView1.GetRowCellValue(intRowHandle, "bumen"));FocusedRow_xingming = Convert.T oString(gridView1.GetRowCellValue(intRowHandle, "xingming"));//FocusedRow_jibengongzi = Convert.T oDecimal(gridView1.GetRowCellValue(intRowHandle, "jibengongzi"));object rowJibengongziObj = gridView1.GetRowCellValue(intRowHandle, "jibengongzi");if (DBNull.Value != rowJibengongziObj){FocusedRow_jibengongzi = Convert.T oDecimal(rowJibengongziObj);}} view plaincopy to clipboardprint?//设置焦点行的焦点单元格的位置ColumnView view = (ColumnView)gridControl_Gongzi.FocusedView;view.FocusedColumn = view.Columns["bumen"];//设置焦点行的焦点单元格的位置ColumnView view = (ColumnView)gridControl_Gongzi.FocusedView;view.FocusedColumn = view.Columns["bumen"]; view plaincopy to clipboardprint?//当焦点行发生改变时执行获取选中焦点行idprivate void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgse){int intRowHandle = e.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(intRowHandle, "id");if (DBNull.Value != rowIdObj)//做个判断否则获取不到id后报错{FocusedRow_id = Convert.T oInt32(rowIdObj);}}//当焦点行发生改变时执行获取选中焦点行idprivate void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e){int intRowHandle = e.FocusedRowHandle;object rowIdObj = gridView1.GetRowCellValue(intRowHandle, "id");if (DBNull.Value != rowIdObj)//做个判断否则获取不到id后报错{FocusedRow_id = Convert.T oInt32(rowIdObj);}}view plaincopy to clipboardprint?//焦点行的FocusedHandle为:FocuseRow_Handle = -999998;//获取焦点行的handleColumnView newview = (ColumnView)gridControl_Gongzi.FocusedView;FocuseRow_Handle = newview.FocusedRowHandle;//回车添加新行private void gridView1_KeyPress(object sender, KeyPressEventArgs e){if (e.KeyChar == 13){ColumnView view = (ColumnView)gridControl_Gongzi.FocusedView;if(view.IsLastRow){if (FocuseRow_Handle == 0){gridView1.AddNewRow();ColumnView newview = (ColumnView)gridControl_Gongzi.FocusedView;newview.FocusedColumn = newview.Columns["bumen"];//定位焦点网格的位置FocuseRow_Handle = newview.FocusedRowHandle;//获取新焦点行的FocuseRowHandle 并初始化全局变量FocuseRow_Handle 供保存操作时判断是update还是insertGridControl属性1.隐藏最上面的GroupPanelgridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值sValue=Table.Rows[gridView1.FocusedRowHandle][FieldNa me].T oString();3.数据只读gridView1.OptionsBehavior.Editable=false;4.不显示MasterDetailViewgridView1.OptionsDetail.EnableMasterViewMode=false;5.修改最上面的GroupPanel内容gridView1.GroupPanelText="柳生飘絮";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设置OptionsColumn.AllowEdit才有意义OptionsColumn.ReadOnlyGets or sets whether end-users are prevented from editing the column's cell values.可读可写If the ReadOnly property is set to true, the cell values of columns cannot be modified by end-users. In this case cell editors can be invoked but end users can only select and copy an editor's content. This option is not in effect if the column's AllowEdit or the view's ColumnView.Editable option is disabled.Cell values can still be modified in code using the ColumnView.SetRowCellValue method regardless of the ReadOnly property's setting.只读不可拷贝: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.GetRowCell Valu(e.FocusedRowHandle, "Id"));_emrFileReadList = EMRTemplateFileReadList.GetEMRTemplateFileReadList(_id);gridVersonData.DataSource = _emrFileReadList;}响应事件:FocusedRowChanged获取字段值:gridData.GetRowCellValue(e.FocusedRowHandle, "Id") 注意:FocusedRowChanged是Gridview的事件而不是gridControl的事件gridControl与Gridview的区别:前者是容器,后者为视图1.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使用
1.设置最下面的总计行:view plaincopy to clipboardprint?1.gridcontrol.TotalSummary.Add(new GridSummaryItem()2. {SummaryType=SummaryItemType.Count,3. FieldName = "SID",4. DisplayFormat = "总记录数:{0:0}"});gridcontrol.TotalSummary.Add(new GridSummaryItem(){SummaryType=SummaryItemType.Count,FieldName = "SID",DisplayFormat = "总记录数:{0:0}"});显示效果如下:参数:SummaryItemType:聚合类型:Devexpress已经具备常用的方法了,基本够用,实在不够用可以使用Custom;FieldName:统计列名;DisplayFormat:显示格式;2.隐藏分组的Panel:view plaincopy to clipboardprint?1.tableView1.ShowGroupPanel = false;tableView1.ShowGroupPanel = false;3.设置当前焦点单元格为编辑状态(光标移入):view plaincopy to clipboardprint?1.tableView1.ShowEditor();tableView1.ShowEditor();此方法写入OnLoad无效,写入Loaded有效。
4.Devexpress汉化方法:1.引用汉化DLL文件:DevExpress.LocalizationWPF.v11.2.dll2.加入如下代码:view plaincopy to clipboardprint?1.DevExpress.Xpf.Core.DXMessageBoxLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfCoreDXMessageBoxLocalizationCHS();2. DevExpress.Xpf.Core.Localization.TabControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfCoreLocalizationCHS();3. EditorLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfEditorsLocalizationCHS();4. DevExpress.Xpf.Docking.Base.DockingLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfDockingLocalizationCHS();5. GridControlLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfGridLocalizationCHS();6. DevExpress.Xpf.Printing.PrintingLocalizer.Active = newDevExpress.LocalizationCHS.DevExpressXpfPrintingLocalizationCHS(); 7. DevExpress.Xpf.Ribbon.RibbonControlLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfRibbonLocalizationCHS();8. DevExpress.Xpf.RichEdit.Localization.XpfRichEditLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXpfRichEditLocalizationCHS(); 9. DevExpress.XtraRichEdit.Localization.XtraRichEditLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXtraRichEditLocalizationCHS();。
DevExpress中GridControl使用技巧总结
DevExpress中GridControl使用技巧总结GridControl详解(基础)控件常用属性设置1、如何解决单击记录整行选中的问题View->OptionsBehavior->EditorShowMode设置为:Click2、如何新增一条记录(1)、gridView.AddNewRow()(2)、实现gridView_InitNewRow事件3、如何解决GridControl记录能获取而没有显示出来的问题gridView.populateColumns();4、如何让行只能选择而不能编辑(或编辑某一单元格)(1)、View->OptionsBehavior->EditorShowMode设置为:Click (2)、View->OptionsBehavior->Editable设置为:false5、如何禁用GridControl中单击列弹出右键菜单设置Run Design->OptionsMenu->EnableColumnMenu设置为:false6、如何隐藏GridControl的GroupPanel表头设置Run Design->OptionsView->ShowGroupPanel设置为:false7、如何禁用GridControl中列头的过滤器过滤器如下图所示:设置RunDesign->OptionsCustomization->AllowFilter设置为:false8、如何在查询得到0条记录时显示自定义的字符提示/显示如图所示:方法如下://When no Records Are Being Displayed privatevoidgridView1_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); } } }9、如何显示水平滚动条?设置this.gridView.OptionsView.ColumnAutoWidth = false;10、如何定位到第一条数据/记录?设置this.gridView.MoveFirst()11、如何定位到下一条数据/记录?设置this.gridView.MoveNext()12、如何定位到最后一条数据/记录?设置this.gridView.MoveLast()13、设置成一次选择一行,并且不能被编辑this.gridView1.FocusRectStyle =DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.Ro wFocus;this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocus edCell = false;14、如何显示行号?this.gridView1.IndicatorWidth = 40; //显示行的序号private void gridView1_CustomDrawRowIndicator(object sender,RowIndicatorCustomDrawEventArgs e){ if (.IsRowIndicator &&e.RowHandle>=0){ .DisplayText = (e.RowHandle + 1).ToString(); } }15、如何让各列头禁止移动?设置gridView1.OptionsCustomization.AllowColumnMoving= false;16、如何让各列头禁止排序?设置gridView1.OptionsCustomization.AllowSort = false;17、如何禁止各列头改变列宽?设置gridView1.OptionsCustomization.AllowColumnResizing = false;GridControl详解(一)原汁原味的表格展示Dev控件中的表格控件GridControl控件非常强大。
DevExpress控件使用方法:第一篇gridControl详解
DevExpress控件使用方法:第一篇gridControl详解GridControl(1)层次设计器有五种视图模式,banded gridview多行表头,数据还是一行一组,最靠近数据的表头与数据一一对应;advanced banded gridview 多行表头,数据可以多行一组;cardview 一个卡片是一组数据,其中左侧是标题,右侧是数据;layout view是card view的集合,布局可以自定义(2)视图视图的层次结构视图属性:可通过GridControl.Views访问所有视图。
可通过ColumnView.Columns访问当前视图的所有列(3)设计器(层次设计器中点击Run Designer可调出)设计器有四大功能:①主要功能的设计;②选择外观;③可以选择多个视图,内嵌编辑器的设置;④打印功能的设置① View:(a)Option:OptionsBehavior可以设置行为(是否允许新增行/是否允许删除行/是否允许编辑/是否允许展开所有分组)OptionsCustomization(是否允许排序/分组/过滤/列的移动/列的大小的调整)OptionsDetail(设置从表的属性)、OptionsFilter(过滤属性的设置)OptionsView(显示或隐藏某些东西,比如标题行)(b)AppearancePrint : (行高…)Columns://列的相应的属性FeatureBrowser://设置事件,Grid的绑定、列的绑定(有方法提示),什么都可以设置Layout:设置布局Group Summary Items添加分组统计② Appearance:Appearances可设置行的外观Format Conditions条件样式Style Schemes可设置主题(比较方便)③ RepositoryView Repository设计视图,与①差不多In-place Editor Repository内嵌编辑器④ Printing(4)gridControl:给该列添加组件(如按钮) 三种方法法一:打开设计器(Run Designer),选择左侧Repository,点击In-place Editor Repository(内嵌编辑器),点击Add右侧的下拉菜单,选择你想添加的控件,比如ComboBoxEdit,再在右侧编辑控件的属性,ComboBox的话就可以设置Data下的Items集合,然后点左侧Main里的Columns,点你想在上头添加控件的列,找右侧Data 下的ColumnEdit,点最右边的下拉菜单,点Existing左侧的加号,就能找到你刚才的控件,添加。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;。