1、c#DEV控件使用使用下面的示例代码,以获得当前编辑的值。 string editingValue;if(gridControl1.KeyboardFocusView.IsEditing)editingValue = gridControl1.KeyboardFocusView.EditingValue.ToString();/ / 由资源文件获取图片/ / / byte GetImage(int key) Image img = DevExpress.Utils.Controls.ImageHelper.CreateImageFromResources(string.Format(River
2、Sys.Resources.0.gif, key.ToString(), typeof(RiverInfos).Assembly); return DevExpress.XtraEditors.Controls.ByteImageConverter.ToByteArray(img, ImageFormat.Gif);private void rILinkEditInfoDel_Click(object sender, EventArgs e) if (XtraMessageBox.Show(请确定是否删除当前记录?, 警告, MessageBoxButtons.YesNo, MessageBo
3、xIcon.Warning) = DialogResult.Yes) DataRow row = gvInfos.GetDataRow(gvInfos.FocusedRowHandle); delByCode(rowCode.ToString(); XtraMessageBox.Show(操作成功!); 二、绑定非数据表中列 Hashtable ht = new Hashtable();private void gridView6_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumn
4、DataEventArgs e) GridView View = sender as GridView; if (e.RowHandle = 0) object needAlert = View.GetRowCellValue(e.RowHandle, View.ColumnsneedAlert); if (needAlert != null & needAlert != DBNull.Value & needAlert.ToString().Trim() != 0 & View.GetRowCellValue(e.RowHandle, View.ColumnsValue) != DBNull
5、.Value) decimal AverValue = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.ColumnsValue); object MinValue = View.GetRowCellValue(e.RowHandle, View.ColumnsMinValue); object MaxVlaue = View.GetRowCellValue(e.RowHandle, View.ColumnsMaxValue); if (MinValue != DBNull.Value & MinValue != null &
6、MaxVlaue.ToString() != & MaxVlaue != DBNull.Value & MaxVlaue != null & MaxVlaue.ToString() != ) decimal gridColumn2 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.ColumnsMinValue); decimal gridColumn1 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.ColumnsMaxValue); if (gridCo
7、lumn2 AverValue | AverValue gridColumn1) if (!ht.ContainsKey(pic) ht.Add(pic, GetImage(1); e.Value = htpic; / / 由资源文件获取图片/ / / byte GetImage(int key) Image img = DevExpress.Utils.Controls.ImageHelper.CreateImageFromResources(string.Format(RiverSys.Resources.0.gif, key.ToString(), typeof(RiverInfos).
8、Assembly); return DevExpress.XtraEditors.Controls.ByteImageConverter.ToByteArray(img, ImageFormat.Gif);/ / 动态根据条件设置行样式/ / / private void gridView6_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) GridView View = sender as GridView; if (e.RowHandle = 0) object needAlert = V
9、iew.GetRowCellValue(e.RowHandle, View.ColumnsneedAlert); if (needAlert != null & needAlert != DBNull.Value & needAlert.ToString().Trim() != 0 & View.GetRowCellValue(e.RowHandle, View.ColumnsValue) != DBNull.Value) decimal AverValue = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.ColumnsVa
10、lue); object MinValue = View.GetRowCellValue(e.RowHandle, View.ColumnsMinValue); object MaxVlaue = View.GetRowCellValue(e.RowHandle, View.ColumnsMaxValue); if (MinValue != DBNull.Value & MinValue != null & MaxVlaue.ToString() != & MaxVlaue != DBNull.Value & MaxVlaue != null & MaxVlaue.ToString() !=
11、) decimal gridColumn2 = Convert.ToDecimal(MinValue); decimal gridColumn1 = Convert.ToDecimal(MaxVlaue); if (gridColumn2 AverValue | AverValue gridColumn1) e.Appearance.ForeColor = Color.Red; e.Appearance.BackColor = Color.LightGray; 三、GridControl 中颜色选择控件 private void gvMapColor_CustomUnboundColumnDa
12、ta(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) GridView view = sender as GridView; DataView dv = view.DataSource as DataView; if (e.IsGetData) string strVal = dve.ListSourceRowIndexColor.ToString(); if (strVal != ) /e.Value = DevExpress.Utils.StyleLayout.ColorFromStrin
13、g(strVal); e.Value = Common.HexToColor(strVal); else /Color colorVal = DevExpress.Utils.StyleLayout.ColorFromString(e.Value.ToString(); Color colorVal = (Color)e.Value; dve.ListSourceRowIndexColor = Common.RGB_HEX(colorVal.ToArgb(); 四、关于 GridControl 验证示例 /*/ / 初始化GridView,绑定数据/ / private void GridVi
14、ewBindData(string parentId)this.gridView1.Columns.Clear();this.FDs= areaSetupActionHelper.getDsRegionByParentId(parentId);this.gridCArea.DataSource =this.FDs.Tables0.DefaultView; this.gridView1.Columnsid.VisibleIndex = -1; this.gridView1.ColumnschildCounts.VisibleIndex = -1; this.gridView1.Columnsre
15、g_id.Caption = 区划编号; this.gridView1.Columnsreg_name.Caption = 区划名称; this.gridView1.Columnsparent_id.Caption = 父区划编号; this.gridView1.Columnsreg_desc.Caption = 区划描述; this.gridView1.Columnsparent_id.ImageIndex =1; this.gridView1.Columnsreg_desc.ImageIndex = 0; RepositoryItemTextEdit textEditReg_Id = ne
16、w RepositoryItemTextEdit(); textEditReg_Id.Mask.EditMask =parentId+d2,3; textEditReg_Id.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Regular; this.gridView1.Columnsreg_id.ColumnEdit = textEditReg_Id; this.gridView1.Columnsreg_desc.ColumnEdit = new RepositoryItemMemoExEdit(); TreeListNode nod
17、e = this.treelArea.FocusedNode.ParentNode; string fid = node=null?0:node.GetValue(RegID).ToString().Trim(); DataSet ds = areaSetupActionHelper.getDsRegionByParentId(fid); RepositoryItemLookUpEdit lookUEParent_Id = new RepositoryItemLookUpEdit(); lookUEParent_Id.Columns.Add(new LookUpColumnInfo(reg_i
18、d, 40, 区划编号); lookUEParent_Id.Columns.Add(new LookUpColumnInfo(reg_name, 40, 区划名称); lookUEParent_Id.DataSource = ds.Tables0.DefaultView; lookUEParent_Id.ValueMember = reg_id; lookUEParent_Id.DisplayMember = reg_id; this.gridView1.Columnsparent_id.ColumnEdit = lookUEParent_Id;/*/ / gridView单元格验证的相关处理
19、程序/ / / private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)if (e.Valid = false&this.gridView1.FocusedColumn.FieldName = reg_id) e.ErrorText = 区划编号不合法!n应为父区划编号加23位数据组成!; if (this.gridView1.FocusedColumn.FieldName = reg_name) R
20、egex reg=new Regex(u4e00-u9fa51,20); Match m=reg.Match(e.Value.ToString().Trim(); if (m.Length != e.Value.ToString().Trim().Length) e.Valid = false; e.ErrorText = 区划名称应为汉字n长度为1至20; private void gridView1_InvalidValueException(object sender, InvalidValueExceptionEventArgs e) if (MyDialog.Alert(您所填写的内
21、容不符合规则n要放弃您刚才对此项所做的更改吗?, 您所编辑的内容不符合规则, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes) e.ExceptionMode = ExceptionMode.Ignore; /*/ / gridView行验证的相关处理程序/ private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)string regid = this.gr
22、idView1.GetRowCellValue(e.RowHandle, reg_id).ToString().Trim();string regName = this.gridView1.GetRowCellValue(e.RowHandle, reg_name).ToString().Trim();if ( regid.Length 1) e.Valid = false; this.gridView1.SetColumnError(this.gridView1.Columnsreg_id, 请填写区划编号!, DevExpress.XtraEditors.DXErrorProvider.E
23、rrorType.Default); / e.ErrorText = 区划名称不能为空!; if (regName.Length = 0) if (this.gridView1.GetRowCellValue(e.RowHandle, this.gridView1.Columnsreg_id).ToString().Trim() = | this.gridView1.GetRowCellValue(e.RowHandle, this.gridView1.Columnsreg_name).ToString().Trim() = ) if (MyDialog.Alert( 您所填写的内容不符合规则
24、n要放弃您刚才对此项所做的更改吗?, 您所编辑的内容不符合规则, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes) e.ExceptionMode = ExceptionMode.Ignore; else e.ExceptionMode = ExceptionMode.NoAction; else e.ExceptionMode = ExceptionMode.Ignore; 如果数据源中只包含图片的链接,如何在DevExpress GridControl的一列中显示外部图片?要实现该功能,可通过非绑定列的
25、方式来实现。具体实现方法如下:1. 创建了一个非绑定列并设置其相应的属性,属性设置如下:l FieldName设为 Image (该字段名必须是唯一的)l UnboundType设为 UnboundColumnType.Object l ColumnEdit设为RepositoryItemPictureEdit类的实例(该操作PictureEdit 为该列的内置编辑器)2. 处理View的CustomUnboundColumnData事件,用于为非绑定列填充数据。在该事件中需加载图片,将其存放在一个hashtable中,然后再将其提供给对应的单元格。关键代码:/获取文件路径string Get
26、FileName(string color) if(color = null | color = string.Empty) return string.Empty; return color + .jpg; /处理CustomUnboundColumnData事件,为非绑定列填充数据private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) if(e.Column.FieldName = Image & e.I
27、sGetData) GridView view = sender as GridView; string colorName = (string)(DataRowView)e.Row)Color; string fileName = GetFileName(colorName).ToLower(); if(!Images.ContainsKey(fileName) Image img = null; try string filePath = DevExpress.Utils.FilesHelper.FindingFileName(Application.StartupPath, ImageDir + fileName, false); img = Image.FromFile(filePath); catch Images.Add(fileName, img); e.Value = ImagesfileName; 怎样给DevExpress XtraTreeList添加行的序号?private void treeList1_CustomDrawNodeIndicator(object sender, DevExpress.XtraTreeList.CustomDrawNodeIndicatorEventArgs e)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1