Вот один подход:
private List<Control> m_lstControlsToValidate;
private void SetupControlsToValidate()
{
m_lstControlsToValidate = new List<Control>();
//Add data entry controls to be validated
m_lstControlsToValidate.Add(sometextbox);
m_lstControlsToValidate.Add(sometextbox2);
}
private void ValidateSomeTextBox()
{
//Call this method in validating event.
//Validate and set error using error provider
}
Private void Save()
{
foreach(Control thisControl in m_lstControlsToValidate)
{
if(!string.IsNullOrEmpty(ErrorProvider.GetError(thisControl)))
{
//Do not save, show messagebox.
return;
}
}
//Continue save
}
РЕДАКТИРОВАТЬ:
Для каждого элемента управления в m_lstControlsToValidate вам нужно написать метод проверки, который будет запущен в событии Validating.
* 1007ErrorProvider.GetError (thisControl) вернет текст ошибки или пустую строку.Пустая строка означает, что контроль в порядке.В противном случае элемент управления содержит некоторую ошибку, и мы прекращаем операцию сохранения.
Мы делаем это со всеми элементами управления в m_lstControlsToValidate.Если все элементы управления не содержат ошибок, мы продолжаем с save else abort.