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. 终端I/O之非规范模式

    关闭termios结构中c_lflag字段的ICANON标志就使终端处于非规范模式.在非规范模式中,输入数据并不组成行,不处理下列特殊字符:ERASE/KILL/EOF/NL/EOL/EOL2/CR/ ...

  2. Steps to Install Hadoop on CentOS/RHEL 6---reference

    http://tecadmin.net/steps-to-install-hadoop-on-centosrhel-6/# The Apache Hadoop software library is ...

  3. 图解java8 stream 的几个转换方法

    图片摘自:http://ifeve.com/stream/ 1.distinct 对于stream中包含的元素进行去重复操作(去重复依赖元素的equals方法) 2.filter 对于stream中包 ...

  4. (圆形imageview 类似qq头像)---》(ps:引用第三库APAvatarImageView>

    使用方法:在故事版上把imageview的class名称设置为APAvatarImageView就可以显示圆形图,其他相关属性可以参考此类. demo下载地址 https://github.com/a ...

  5. [翻译] CBStoreHouseTransition

    CBStoreHouseTransition What is it? A custom transition inspired by Storehouse iOS app, also support ...

  6. 如何创建sequence

    我用的是在oracle中的方法,在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 1.Create Sequence 你首先要有CREATE ...

  7. Redis入门(优势,环境,字符串,哈希,列表)

    Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型. Redis可以将数据复制到任意数量的 ...

  8. html 中根据后台参数显示 相应的样式 EL表达式

    <li><a class="${return_product_statu==-1||return_product_statu==null?'switch_xz':'none ...

  9. 如何让oracle的select强制走索

    大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有糊涂的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引. (注意:走索引不一定是最优的 ...

  10. 【WinAPI】Windows Message 枚举常量收集

    namespace WindowsUtilities { public enum WindowsMessages : int { WM_NULL = 0x0000, WM_CREATE = 0x000 ...