方法①:使用 ValidatingEditor 事件(一般用于对整个GridView内的文本框进行数据验证)
当单元格输入格式错误时,直接在该行下方提示,代码如下:
using System.Text.RegularExpressions; //注意添加引用
private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
{
if (gridView1.FocusedColumn == colcount) //设置校验列
{
bool result = false;
Regex regex = new Regex(@"^+?d+$");
result = regex.IsMatch(e.Value.ToString());
if (!result)
{
e.ErrorText = "请输入一个正整数";
e.Valid = false;
return;
}
}
}
方法②:使用 ValidatingEditor 事件进行验证,InvalidValueException 事件进行错误信息提示(一般用于对整个GridView内的文本框进行数据验证)
当单元格输入格式错误时,弹出消息看提示,代码如下:
using DevExpress.XtraEditors.Controls; //注意添加引用
private void gridView1_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
{
DataRow dr = gridView1.GetFocusedDataRow();
if (gridView1.FocusedColumn == colcount)
{
bool result = false;
Regex regex = new Regex(@"^+?d+$");
result = regex.IsMatch(e.Value.ToString());
if (!result)
{
e.Valid = false;
}
}
}
private void gridView1_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
{
e.ExceptionMode = ExceptionMode.DisplayError;
e.WindowCaption = "输入错误";
e.ErrorText = "请输入一个正整数";
gridView1.HideEditor();
}
方法③:使用 RepositoryItemTextEdit 的 Validating 事件进行验证,InvalidValueException 事件进行错误信息提示(一般用来对内置控件的单元格进行数据验证)
当单元格输入格式错误时,弹出消息看提示,代码如下
private void repositoryItemTextEdit1_Validating(object sender, CancelEventArgs e)
{
//将sender转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验
BaseEdit textEdit = sender as BaseEdit;
if (textEdit.EditValue.ToString().Trim().Length > 0)
{
bool result = false;
Regex regex = new Regex(@"^+?d+$");
result = regex.IsMatch(textEdit.EditValue.ToString());
if (!result)
{
e.Cancel = true; //校验不通过
return;
}
}
}
private void gridView1_InvalidValueException(object sender, DevExpress.XtraEditors.Controls.InvalidValueExceptionEventArgs e)
{
e.ExceptionMode = ExceptionMode.DisplayError;
e.WindowCaption = "输入错误";
e.ErrorText = "请输入一个正整数";
gridView1.HideEditor();
}