DevExpress 经典常用功能代码收集





‍DevExpress
经典常用功能代码收集
May 18, 2010 | tags DevExpress WinformGridControl DEV常用功能代码
| views
Comments 0







随着DevExpress 控件包越来越多的被中国用户使用,由于是英文版本,看英文版使用说明非常困难,慧都控件网在DevExpress
控件包使用方面有多年的研究,慧都控件网会不断的把DevExpress 使用经验分享给大家。


下面是我们平时收集最常用的DevExpress Winform 4个代码片段,比较常用,希望对广大DEV用户有帮助。


、GridControl的删除操作

private void
rILinkEditInfoDel_Click(object sender, EventArgs e)
{
if (XtraMessageBox.Show("请确定是否删除当前记录?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
DataRow row =
gvInfos.GetDataRow(gvInfos.FocusedRowHandle);

delByCode(row["Code"].ToString());

XtraMessageBox.Show("操作成功!");

}
}

二、绑定非数据表中列

Hashtable ht = new
Hashtable();

private void gridView6_CustomUnboundColumnData(object
sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{

GridView View = sender as GridView;
if (e.RowHandle >= 0)

{
object needAlert = View.GetRowCellValue(e.RowHandle,
View.Columns["needAlert"]);
if (needAlert != null & needAlert !=
DBNull.Value && needAlert.ToString().Trim() != "0" &
View.GetRowCellValue(e.RowHandle, View.Columns["Value"]) !=
DBNull.Value)
{
decimal AverValue =
Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,
View.Columns["Value"]));
object MinValue =
View.GetRowCellValue(e.RowHandle, View.Columns["MinValue"]);

object MaxVlaue = View.GetRowCellValue(e.RowHandle,
View.Columns["MaxValue"]);
if (MinValue != DBNull.Value &
MinValue != null & MaxVlaue.ToString() != "" & MaxVlaue != DBNull.Value
&& MaxVlaue != null & MaxVlaue.ToString() != "")

{
decimal gridColumn2 =
Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,
View.Columns["MinValue"]));
decimal gridColumn1 =
Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,
View.Columns["MaxValue"]));
if (gridColumn2 > AverValue
|| AverValue > gridColumn1)
{
if
(!ht.ContainsKey("pic"))
ht.Add("pic",
GetImage(1));
e.Value = ht["pic"];

}
}
}
}
}

///


/// 由资源文件获取图片
///

///
///
byte[]
GetImage(int key)
{
Image img =
DevExpress.Utils.Controls.ImageHelper.CreateImageFromResources(string.Format("RiverSys.Resources.{0}.gif",
key.ToString()), typeof(RiverInfos).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 = View.GetRowCellValue(e.RowHandle,
View.Columns["needAlert"]);
if (needAlert != null & needAlert !=
DBNull.Value && needAlert.ToString().Trim() != "0" &
View.GetRowCellValue(e.RowHandle, View.Columns["Value"]) !=
DBNull.Value)
{
decimal AverValue =
Convert.ToDecimal(View.GetRowCellValue(e.RowHandle,
View.Columns["Value"]));
object MinValue =
View.GetRowCellValue(e.RowHandle, View.Columns["MinValue"]);

object MaxVlaue = View.GetRowCellValue(e.RowHandle,
View.Columns["MaxValue"]);
if (MinValue != DBNull.Value &
MinValue != null & MaxVlaue.ToString() != "" & MaxVlaue != DBNull.Value
&& MaxVlaue != null & MaxVlaue.ToString() != "")

{
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_CustomUnboundColumnData(object
sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{

GridView view = sender as GridView;
DataView dv = view.DataSource as
DataView;
if (e.IsGetData)
{
string strVal =
dv[e.ListSourceRowIndex]["Color"].ToString();
if (strVal !=
"")
{
//e.Value =
DevExpress.Utils.StyleLayout.ColorFromString(strVal);
e.Value =
Common.HexToColor(strVal);
}
}
else

{
//Color colorVal =
DevExpress.Utils.StyleLayout.ColorFromString(e.Value.ToString());

Color colorVal = (Color)e.Value;
dv[e.ListSourceRowIndex]["Color"] =
Common.RGB_HEX(colorVal.ToArgb());
}
}

四、关于
GridControl 验证示例

/**////
///
初始化GridView,绑定数据
///

///
private void GridViewBindData(string
parentId)
{
this.gridView1.Columns.Clear();
this.FDs=
areaSetupActionHelper.getDsRegionByParentId(parentId);
this.gridCArea.DataSource
=this.FDs.Tables[0].DefaultView;


this.gridView1.Columns["id"].VisibleIndex = -1;

this.gridView1.Columns["childCounts"].VisibleIndex = -1;


this.gridView1.Columns["reg_id"].Caption = "区划编号";

this.gridView1.Columns["reg_name"].Caption = "区划名称";

this.gridView1.Columns["parent_id"].Caption = "父区划编号";

this.gridView1.Columns["reg_desc"].Caption = "区划描述";

this.gridView1.Columns["parent_id"].ImageIndex =1;

this.gridView1.Columns["reg_desc"].ImageIndex = 0;


RepositoryItemTextEdit textEditReg_Id = new RepositoryItemTextEdit();

textEditReg_Id.Mask.EditMask =parentId+"\\d{2,3}";

textEditReg_Id.Mask.MaskType =
DevExpress.XtraEditors.Mask.MaskType.Regular;


this.gridView1.Columns["reg_id"].ColumnEdit = textEditReg_Id;


this.gridView1.Columns["reg_desc"].ColumnEdit = new
RepositoryItemMemoExEdit();

TreeListNode node =
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_id", 40, "区划编号"));
lookUEParent_Id.Columns.Add(new
LookUpColumnInfo("reg_name", 40, "区划名称"));
lookUEParent_Id.DataSource =
ds.Tables[0].DefaultView;
lookUEParent_Id.ValueMember = "reg_id";

lookUEParent_Id.DisplayMember = "reg_id";

this.gridView1.Columns["parent_id"].ColumnEdit =
lookUEParent_Id;
}
/**////
///
gridView单元格验证的相关处理程序
///

///
///
private void gridView1_ValidatingEditor(object
sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs
e)
{
if (e.Valid == false&this.gridView1.FocusedColumn.FieldName ==
"reg_id")
{
e.ErrorText = "区划编号不合法!\n应为父区划编号加2~3位数据组成!";

}
if (this.gridView1.FocusedColumn.FieldName == "reg_name")
{

Regex reg=new Regex(@"[\u4e00-\u9fa5]{1,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(" 您所填写的内容不符合规则\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.gridView1.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.Columns["reg_id"], "请填写区划编号!",
DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default);
//
e.ErrorText = "区划名称不能为空!";
}
if (regName.Length < 1)

{
e.Valid = false;

this.gridView1.SetColumnError(this.gridView1.Columns["reg_name"], "区划名称不能为空!",
DevExpress.XtraEditors.DXErrorProvider.ErrorType.Default);

}
}

private void gridView1_InvalidRowException(object sender,
DevExpress.XtraGrid.Views.Base.InvalidRowExceptionEventArgs e)
{


if (e.RowHandle >= 0)
{
if
(this.gridView1.GetRowCellValue(e.RowHandle,
this.gridView1.Columns["reg_id"]).ToString().Trim() == "" ||
this.gridView1.GetRowCellValue(e.RowHandle,
this.gridView1.Columns["reg_name"]).ToString().Trim() == "")
{

if (MyDialog.Alert("  您所填写的内容不符合规则\n 要放弃您刚才对此项所做的更改吗?", "您所编辑的内容不符合规则",
MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

{
e.ExceptionMode = ExceptionMode.Ignore;
}

else
{
e.ExceptionMode = ExceptionMode.NoAction;

}
}
}
else
{
e.ExceptionMode =
ExceptionMode.Ignore;
}
}

原文地址:https://www.cnblogs.com/wpf123/p/2052909.html