Перебирать все сообщения об ошибках и отображать на 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;
            }

        }

Если кто-то может помочь мне выяснить, как отправлять сообщения обо всех моих сообщениях поставщика ошибок или даже в каких текстовых полях находятся ошибки

0 ответов

Другие вопросы по тегам