1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Drawing; 5 using System.Data; 6 using System.Text; 7 using System.Windows.Forms; 8 using DevExpress.XtraEditors.DXErrorProvider; 9 10 namespace DevExpress.Tutorials.XtraEditors { 11 public partial class ModuleDXValidationProvider : DevExpress.Tutorials.XtraEditors.Tutorial { 12 public ModuleDXValidationProvider() { 13 InitializeComponent(); 14 InitValidationRules(); 15 InitFieldValues(); 16 } 17 private void ModuleDXValidationProvider_Load(object sender, EventArgs e) { 18 manualValidate.Checked = true; 19 dxValidationProvider1.ValidationMode = ValidationMode.Manual; 20 dxValidationProvider1.Validate(); 21 } 22 // <autoValidateCheck> 23 // <manualValidate> 24 private void OnCheckedChanged(object sender, EventArgs e) { 25 dxValidationProvider1.ValidationMode = (manualValidate.Checked ? ValidationMode.Manual : ValidationMode.Auto); 26 btnValidate.Enabled = manualValidate.Checked; 27 } 28 // </manualValidate> 29 // </autoValidateCheck> 30 31 private void InitValidationRules() { 32 // <notEmptyTextEdit> 33 ConditionValidationRule notEmptyValidationRule = new ConditionValidationRule(); 34 notEmptyValidationRule.ConditionOperator = ConditionOperator.IsNotBlank; 35 notEmptyValidationRule.ErrorText = "Please enter a value"; 36 // </notEmptyTextEdit> 37 38 // <rangeTextEdit> 39 ConditionValidationRule rangeValidationRule = new ConditionValidationRule(); 40 rangeValidationRule.ConditionOperator = ConditionOperator.Between; 41 rangeValidationRule.Value1 = 0; 42 rangeValidationRule.Value2 = 100; 43 rangeValidationRule.ErrorText = "Please enter a value between 1 and 100"; 44 // </rangeTextEdit> 45 46 // <notEqualsComboBoxEdit> 47 ConditionValidationRule notEqualsValidationRule = new ConditionValidationRule(); 48 notEqualsValidationRule.ConditionOperator = ConditionOperator.NotEquals; 49 notEqualsValidationRule.Value1 = "(select)"; 50 notEqualsValidationRule.ErrorText = "Please choose a value"; 51 notEqualsValidationRule.ErrorType = ErrorType.Information; 52 // </notEqualsComboBoxEdit> 53 54 // <containsTextEdit> 55 ConditionValidationRule containsValidationRule = new ConditionValidationRule(); 56 containsValidationRule.ConditionOperator = ConditionOperator.Contains; 57 containsValidationRule.Value1 = '@'; 58 containsValidationRule.ErrorText = "Please enter a valid email"; 59 containsValidationRule.ErrorType = ErrorType.Warning; 60 // </containsTextEdit> 61 62 // <compareTextEdit> 63 CompareAgainstControlValidationRule compareValidationRule = new CompareAgainstControlValidationRule(); 64 compareValidationRule.Control = notEmptyTextEdit; 65 compareValidationRule.CompareControlOperator = CompareControlOperator.Equals; 66 compareValidationRule.ErrorText = "Please enter a value that equals to the first editor's value"; 67 compareValidationRule.CaseSensitive = true; 68 // </compareTextEdit> 69 70 // <customTextEdit> 71 CustomValidationRule customValidationRule = new CustomValidationRule(); 72 customValidationRule.ErrorText = "Please enter a valid person name"; 73 customValidationRule.ErrorType = ErrorType.Warning; 74 // </customTextEdit> 75 76 // <notEmptyTextEdit> 77 dxValidationProvider1.SetValidationRule(notEmptyTextEdit, notEmptyValidationRule); 78 // </notEmptyTextEdit> 79 // <rangeTextEdit> 80 dxValidationProvider1.SetValidationRule(rangeTextEdit, rangeValidationRule); 81 // </rangeTextEdit> 82 // <containsTextEdit> 83 dxValidationProvider1.SetValidationRule(containsTextEdit, containsValidationRule); 84 // </containsTextEdit> 85 // <notEqualsComboBoxEdit> 86 dxValidationProvider1.SetValidationRule(notEqualsComboBoxEdit, notEqualsValidationRule); 87 // </notEqualsComboBoxEdit> 88 dxValidationProvider1.SetValidationRule(compareTextEdit, compareValidationRule); 89 // <customTextEdit> 90 dxValidationProvider1.SetValidationRule(customTextEdit, customValidationRule); 91 // </customTextEdit> 92 } 93 private void InitFieldValues() { 94 notEmptyTextEdit.EditValue = "DevExpress"; 95 rangeTextEdit.EditValue = 570; 96 containsTextEdit.EditValue = "support@devexpress.com"; 97 notEqualsComboBoxEdit.EditValue = "(select)"; 98 compareTextEdit.EditValue = notEmptyTextEdit.EditValue; 99 customTextEdit.EditValue = "Mr. Smith"; 100 } 101 // <manualValidate> 102 // <btnValidate> 103 private void btnValidate_Click(object sender, EventArgs e) { 104 dxValidationProvider1.Validate(); 105 } 106 // </btnValidate> 107 // </manualValidate> 108 109 #region CustomValidationRule 110 // <customTextEdit> 111 public class CustomValidationRule : ValidationRule { 112 public override bool Validate(Control control, object value) { 113 string str = (string)value; 114 string[] values = new string[] { "Dr.", "Mr.", "Mrs.", "Miss", "Ms." }; 115 bool res = false; 116 foreach(string val in values) { 117 if(ValidationHelper.Validate(str, ConditionOperator.BeginsWith, val, null, null, false)) { 118 string name = str.Substring(val.Length); 119 if(name.Trim().Length > 0) res = true; 120 } 121 } 122 return res; 123 } 124 } 125 // </customTextEdit> 126 #endregion 127 } 128 }