83 lines
2.6 KiB
C#
83 lines
2.6 KiB
C#
#if FRAMEWORK20
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.ComponentModel;
|
|
|
|
namespace DevComponents.DotNetBar.Validator
|
|
{
|
|
public class CustomValidator : ValidatorBase
|
|
{
|
|
#region Events
|
|
public event ValidateValueEventHandler ValidateValue;
|
|
#endregion
|
|
|
|
#region Constructors
|
|
/// <summary>
|
|
/// Initializes a new instance of the CustomValidator class.
|
|
/// </summary>
|
|
public CustomValidator()
|
|
{
|
|
}
|
|
#endregion
|
|
|
|
#region Implementation
|
|
public override bool Validate(System.Windows.Forms.Control input)
|
|
{
|
|
ValidateValueEventArgs e = new ValidateValueEventArgs(input);
|
|
OnValidateValue(e);
|
|
|
|
if (this.SuperValidator != null)
|
|
this.SuperValidator.InvokeCustomValidatorValidateValue(this, e);
|
|
|
|
this.LastValidationResult = e.IsValid;
|
|
return LastValidationResult;
|
|
}
|
|
protected virtual void OnValidateValue(ValidateValueEventArgs e)
|
|
{
|
|
ValidateValueEventHandler h = ValidateValue;
|
|
if (h != null) h(this, e);
|
|
}
|
|
|
|
private object _Tag;
|
|
/// <summary>
|
|
/// Gets or sets custom data associated with the validator
|
|
/// </summary>
|
|
[DefaultValue((string)null), Localizable(false), TypeConverter(typeof(StringConverter)), Category("Data"), Description("Custom data associated with the validator")]
|
|
public object Tag
|
|
{
|
|
get { return _Tag; }
|
|
set { _Tag = value; }
|
|
}
|
|
#endregion
|
|
}
|
|
/// <summary>
|
|
/// Defines delegate for CustomValidator ValidateValue event.
|
|
/// </summary>
|
|
/// <param name="sender">Sender</param>
|
|
/// <param name="e">Event arguments</param>
|
|
public delegate void ValidateValueEventHandler(object sender, ValidateValueEventArgs e);
|
|
|
|
public class ValidateValueEventArgs : EventArgs
|
|
{
|
|
/// <summary>
|
|
/// Gets the reference to the control to validate.
|
|
/// </summary>
|
|
public readonly Control ControlToValidate;
|
|
/// <summary>
|
|
/// Gets or sets whether control's value is valid.
|
|
/// </summary>
|
|
public bool IsValid = false;
|
|
|
|
/// <summary>
|
|
/// Initializes a new instance of the ValidateValueEventArgs class.
|
|
/// </summary>
|
|
/// <param name="controlToValidate">Control to validate.</param>
|
|
public ValidateValueEventArgs(Control controlToValidate)
|
|
{
|
|
ControlToValidate = controlToValidate;
|
|
}
|
|
}
|
|
}
|
|
#endif |