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. PHP自动分表程序

    http://blog.zol.com.cn/2210/article_2209590.html /** * 分表程序 *  * @author Shen Xi shen.xi@zol.com.cn  ...

  2. 使用redis做pv、uv、click统计

    redis实时统计 设计思路: 1. 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis. 2.后端插件 ...

  3. eclipse中的tomcat debug模式启动报超时45s

    在eclipse中加入tomcat,开debug模式非常好用,这里就不介绍了 最近eclipse的tomcat开debug模式就是启动不了,增加时间也不能解决,但是非debug模式就可以打开,我觉得是 ...

  4. 关于androidManifest.xml的概叙以及intent-filter的详细分析

    AndroidManifest.xml配置文件对于Android应用开发来说是比较细但又很重要的基础知识,本文旨在总结该配置文件中常用到的几个属性,以便日后查阅,至于那些比较细的属性,主要是平时开发比 ...

  5. 2. Android框架和工具之 Volley

    Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)

  6. 【Mood-11】值得学习的国内外Android开发者信息

    国内 Android 开发者信息: 昵称 GitHub 博客 介绍 罗升阳   Luoshengyang@csdn Android 源码分析 邓凡平   innost@csdn 阿拉神农 魏祝林   ...

  7. ubuntu 12.10安装VIM

    使用命令:sudo apt-get install vim vim-gtk 可能安装时出错,可用下面更新系统,再执行上面的安装命令. 更新:sudo apt-get update

  8. Unity3d之Shader编程:子着色器、通道与标签的写法 & 纹理混合

    一.子着色器 Unity中的每一个着色器都包含一个subshader的列表,当Unity需要显示一个网格时,它能发现使用的着色器,并提取第一个能运行在当前用户的显示卡上的子着色器. 我们知道,子着色器 ...

  9. (二)u-boot2013.01.01 for TQ210:《Makefile分析》

           当时写的时候看的是2012-10版本的,但是略对比了一遍和2013.01.01没什么改动,所以这不影响对2013.01.01版本的makefile的理解.本文比较侧重于语法句意的分析,框 ...

  10. 重构9-Extract Interface(提取接口)

    我们来介绍一个常常被忽视的重构:提取接口.如果你发现多于一个类使用另外一个类的某些方法,引入接口解除这种依赖往往十分有用.该重构实现起来非常简单,并且能够享受到松耦合带来的好处. public cla ...