2012-09-06 53 views

回答

1

試試這個代碼:

using DevExpress.XtraEditors.DXErrorProvider; 

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

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

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

dxValidationProvider1.SetValidationRule(containsTextEdit, containsValidationRule); 
dxValidationProvider1.SetValidationRule(compareTextEdit, compValidationRule); 
dxValidationProvider1.SetValidationRule(customTextEdit, customValidationRule); 

// Represents a custom validation rule. 
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; 
    } 
} 

來源:http://documentation.devexpress.com/#WindowsForms/CustomDocument9481

+0

這很有趣.....好吧,非常感謝。 –

相關問題