public static bool IsValidMaskDescriptor(MaskDescriptor maskDescriptor, out string validationErrorDescription) { validationErrorDescription = string.Empty; if (maskDescriptor == null) { validationErrorDescription = System.Design.SR.GetString("MaskDescriptorNull"); return false; } if ((string.IsNullOrEmpty(maskDescriptor.Mask) || string.IsNullOrEmpty(maskDescriptor.Name)) || string.IsNullOrEmpty(maskDescriptor.Sample)) { validationErrorDescription = System.Design.SR.GetString("MaskDescriptorNullOrEmptyRequiredProperty"); return false; } MaskedTextProvider maskedTextProvider = new MaskedTextProvider(maskDescriptor.Mask, maskDescriptor.Culture); MaskedTextBox box = new MaskedTextBox(maskedTextProvider) { SkipLiterals = true, ResetOnPrompt = true, ResetOnSpace = true, ValidatingType = maskDescriptor.ValidatingType, FormatProvider = maskDescriptor.Culture, Culture = maskDescriptor.Culture }; box.TypeValidationCompleted += new TypeValidationEventHandler(MaskDescriptor.maskedTextBox1_TypeValidationCompleted); box.MaskInputRejected += new MaskInputRejectedEventHandler(MaskDescriptor.maskedTextBox1_MaskInputRejected); box.Text = maskDescriptor.Sample; if ((box.Tag == null) && (maskDescriptor.ValidatingType != null)) { box.ValidateText(); } if (box.Tag != null) { validationErrorDescription = box.Tag.ToString(); } return (validationErrorDescription.Length == 0); }