Перебирать все сообщения об ошибках и отображать на clickEvent? C# winform
Я создаю winform
проекты, которые утилиты несколько error providers
У меня есть уникальный errorproviders
для каждого textBox
, Я пытаюсь перебрать все из них и отобразить все, что присутствует в messagebox
,
Итак, я знаю, что должен пройти через мой controls
что я делаю правильно, все мои проблемы в том, что я не могу распечатать конкретный textboxes
который имеет errors
, Это то, что у меня есть, однако сообщение в окне сообщения неверно.
var errorProviders = new List<ErrorProvider>() {epPrefConTime, epPrefConNumber, epTitle, epEmail, epAlternative, epMobile, epTown, epLandline, epHouseName, epForeName, epSurname, epPostcode, epCountry, epHouseName, epLocality, epCounty };
foreach (Control c in panel1.Controls)
{
if (c is SpellBox)
{
if (errorProviders.Any(e => e.GetError(c).Length > 0))
{
MessageBox.Show(errorProviders.Any(e => e.GetError(c).ToString()));
return true;
}
}
else if (c is TextBox)
{
if (errorProviders.Any(e => e.GetError(c).Length > 0))
{
epCountry.SetError(btn_SaveDetails, "Errors present in form, please review!!!");
return false;
}
}
MessageBox.Show(e.GetError(c));
return true;
}
Я картирую errorProviders
по моему Validating
события следующим образом для всех 16 textBoxes
:
private void txt_Forname_Validating(object sender, CancelEventArgs e)
{
if (util.useUnkownEntity(txt_Forname.Text))
{
UnkownEntity = true;
epForeName.SetError(txt_Forname, "Please use unknow entity!!");
return;
}
else if (string.IsNullOrWhiteSpace(txt_Forname.Text))
{
_IsValid = false;
return;
}
else if (util.IsAllLetters(txt_Forname.Text))
{
epForeName.Clear();
txt_Forname.Text = util.ToTitle(txt_Forname.Text);
_IsValid = true;
UseEntity = false;
return;
}
else
{
epForeName.SetError(txt_Forname, "InValid Forename, please reType!!"); _IsValid = false;
return;
}
}
Если кто-то может помочь мне выяснить, как отправлять сообщения обо всех моих сообщениях поставщика ошибок или даже в каких текстовых полях находятся ошибки