using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors.DXErrorProvider;

namespace DevExpress.Tutorials.XtraEditors {
public partial class ModuleDXValidationProvider : DevExpress.Tutorials.XtraEditors.Tutorial {
public ModuleDXValidationProvider() {
InitializeComponent();
InitValidationRules();
InitFieldValues();
}
private void ModuleDXValidationProvider_Load(object sender, EventArgs e) {
manualValidate.Checked = true;
dxValidationProvider1.ValidationMode = ValidationMode.Manual;
dxValidationProvider1.Validate();
}
// <autoValidateCheck>
// <manualValidate>
private void OnCheckedChanged(object sender, EventArgs e) {
dxValidationProvider1.ValidationMode = (manualValidate.Checked ? ValidationMode.Manual : ValidationMode.Auto);
btnValidate.Enabled = manualValidate.Checked;
}
// </manualValidate>
// </autoValidateCheck>

private void InitValidationRules() {
// <notEmptyTextEdit>
ConditionValidationRule notEmptyValidationRule = new ConditionValidationRule();
notEmptyValidationRule.ConditionOperator = ConditionOperator.IsNotBlank;
notEmptyValidationRule.ErrorText = "Please enter a value";
// </notEmptyTextEdit>

// <rangeTextEdit>
ConditionValidationRule rangeValidationRule = new ConditionValidationRule();
rangeValidationRule.ConditionOperator = ConditionOperator.Between;
rangeValidationRule.Value1 = 0;
rangeValidationRule.Value2 = 100;
rangeValidationRule.ErrorText = "Please enter a value between 1 and 100";
// </rangeTextEdit>

// <notEqualsComboBoxEdit>
ConditionValidationRule notEqualsValidationRule = new ConditionValidationRule();
notEqualsValidationRule.ConditionOperator = ConditionOperator.NotEquals;
notEqualsValidationRule.Value1 = "(select)";
notEqualsValidationRule.ErrorText = "Please choose a value";
notEqualsValidationRule.ErrorType = ErrorType.Information;
// </notEqualsComboBoxEdit>

// <containsTextEdit>
ConditionValidationRule containsValidationRule = new ConditionValidationRule();
containsValidationRule.ConditionOperator = ConditionOperator.Contains;
containsValidationRule.Value1 = '@';
containsValidationRule.ErrorText = "Please enter a valid email";
containsValidationRule.ErrorType = ErrorType.Warning;
// </containsTextEdit>

// <compareTextEdit>
CompareAgainstControlValidationRule compareValidationRule = new CompareAgainstControlValidationRule();
compareValidationRule.Control = notEmptyTextEdit;
compareValidationRule.CompareControlOperator = CompareControlOperator.Equals;
compareValidationRule.ErrorText = "Please enter a value that equals to the first editor's value";
compareValidationRule.CaseSensitive = true;
// </compareTextEdit>

// <customTextEdit>
CustomValidationRule customValidationRule = new CustomValidationRule();
customValidationRule.ErrorText = "Please enter a valid person name";
customValidationRule.ErrorType = ErrorType.Warning;
// </customTextEdit>

// <notEmptyTextEdit>
dxValidationProvider1.SetValidationRule(notEmptyTextEdit, notEmptyValidationRule);
// </notEmptyTextEdit>
// <rangeTextEdit>
dxValidationProvider1.SetValidationRule(rangeTextEdit, rangeValidationRule);
// </rangeTextEdit>
// <containsTextEdit>
dxValidationProvider1.SetValidationRule(containsTextEdit, containsValidationRule);
// </containsTextEdit>
// <notEqualsComboBoxEdit>
dxValidationProvider1.SetValidationRule(notEqualsComboBoxEdit, notEqualsValidationRule);
// </notEqualsComboBoxEdit>
dxValidationProvider1.SetValidationRule(compareTextEdit, compareValidationRule);
// <customTextEdit>
dxValidationProvider1.SetValidationRule(customTextEdit, customValidationRule);
// </customTextEdit>
}
private void InitFieldValues() {
notEmptyTextEdit.EditValue = "DevExpress";
rangeTextEdit.EditValue = 570;
containsTextEdit.EditValue = "support@devexpress.com";
notEqualsComboBoxEdit.EditValue = "(select)";
compareTextEdit.EditValue = notEmptyTextEdit.EditValue;
customTextEdit.EditValue = "Mr. Smith";
}
// <manualValidate>
// <btnValidate>
private void btnValidate_Click(object sender, EventArgs e) {
dxValidationProvider1.Validate();
}
// </btnValidate>
// </manualValidate>

#region CustomValidationRule
// <customTextEdit>
public class CustomValidationRule : ValidationRule {
public override bool Validate(Control control, object value) {
string str = (string)value;
string[] values = new string[] { "Dr.", "Mr.", "Mrs.", "Miss", "Ms." };
bool res = false;
foreach(string val in values) {
if(ValidationHelper.Validate(str, ConditionOperator.BeginsWith, val, null, null, false)) {
string name = str.Substring(val.Length);
if(name.Trim().Length > 0) res = true;
}
}
return res;
}
}
// </customTextEdit>
#endregion
}
}

TextEdit验证的更多相关文章

  1. TextEdit不能空验证设置

    在工具箱中找到dxValidationProvider控件拖拉到界面上,添加代码 ConditionValidationRule notEmptyValidationRule = new Condit ...

  2. winform 表单正则表达式验证 示例(ValidationRule)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. Qt Quick 常用元素:Textinput 与 TextEdit 文本编辑框

    一.Textinput Textinput 用于编辑一行文本,类似于 QLineEdit. font 分组属性允许你设置 Textlnput 元素所用字体的各种属性,包括字体族(family).大 小 ...

  4. [DevExpress] - 使得 XtraEditors.TextEdit 失去焦点(LostFocus)的方法

    场景 WinForm 应用,使用了 DevExpress.XtraEditors.TextEdit 控件的 KeyPress 和 Leave 事件.期望在 TextEdit 上按下回车键或者当 Tex ...

  5. 玩转控件:封装Dev的LabelControl和TextEdit

    俗话说的好:"工欲善其事必先利其器",作为软件攻城狮也是同样道理,攻城狮开发的软件目的是简化客户的操作,让客户动动手指就可以完成很多事情,减少人力成本.这也是系统/软件存在的目的. ...

  6. 【探索】无形验证码 —— PoW 算力验证

    先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...

  7. C# 中参数验证方式的演变

    一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空,如果是字符可能有长度限 ...

  8. Yii1.1的验证规则

    在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...

  9. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

随机推荐

  1. 一款基于jQuery多图切换焦点图插件

    这次要给大家分享的也是一款jQuery图片滑块插件,之前有介绍过不少实用的jQuery焦点图插件和jQuery图片滑块插件,比如jQuery左侧Tab切换的图片滑块插件.它的特点是可以同时切换多张图片 ...

  2. 如何通过apt-get获得安装包的源码

    有时候我们需要获得某个可执行程序的源码,而不仅仅是一个可执行程序,比如我们想获取tree这个工具的源码,这时候就可以采用下面的命令: sudo apt-get source tree pengdl@d ...

  3. WPF 之 布局(一)

    WPF的布局控件都在 System.Windows.Controls.Panel 这个基类下面,使用 WPF提供的各种控件在WPF应用程序中界面进行布局,同时对各种子控件(如按钮.文本框,下拉框等)进 ...

  4. double数值多时系统默认科学计数法解决方法

    比如 Double d = new Double("1234567890.12"); System.out.println("d:="+d); java.tex ...

  5. Java SE ---类,方法,对象等

    1,面向对象程序设计的三大基本特征:继承(Inheritence).封装(Encapsulation).多态(Polymorphism)     2,如何定义类?            修饰符 cla ...

  6. 【阿里云产品公测】一句话告诉你什么样的人该使用ACE,如何使用ACE

    作者:阿里云用户小鸡咕咕 首先回应标题,这一句话就是:看完这篇帖子你就知道了.     前言 写在文章之前,我想先阐述一下写这篇文章的意义.可能大伙就要说了,写这篇文章不就是为了200的代金券吗?错, ...

  7. iOS 犄角旮旯的知识

    1.全局变量 static NSInteger kImageHeight = 300; #define kImageHeight 300 2.通知中心 开始编辑 UITextViewTextDidBe ...

  8. iOS平常注意1

    在写oc代码时的注意有一些错误看看各位朋友在平常注意了编写是的小错误我也会不断总结的 1. [NSTimer scheduledTimerWithTimeInterval:1 target:self ...

  9. jquery插件开发规范

    一.请给你的代码加上注释 这个世界不存在百分百的完美的jquery插件,注释不止是给别人看.更重要的是给自己看. 你应该把注释当做你代码的一部分,养成随手加注释的习惯,尤其是编写javascript的 ...

  10. 【WinAPI】User32.dll注释

    #region User32.dll 函数 /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备 ...