2 votes

Affichage d'une liste d'erreurs dans la méthode MessageBox show

J'essaie de trouver un moyen d'afficher une liste d'erreurs de validation dans mon application en utilisant MessageBox.Show. Pour l'instant, j'ai ceci :

    private bool FormIsValid()
    {
        bool isValid = true;
        List<string> strErrors = new List<string>();

        if (!(txtFirstName.Text.Length > 1) || !(txtLastName.Text.Length > 1))
        {
            strErrors.Add("You must enter a first and last name.");
            isValid = false;
        }
        if (!txtEmail.Text.Contains("@") || !txtEmail.Text.Contains(".") || !(txtEmail.Text.Length > 5))
        {
            strErrors.Add("You must enter a valid email address.");
            isValid = false;
        }
        if (!(txtUsername.Text.Length > 7) || !(pbPassword.Password.Length > 7) || !ContainsNumberAndLetter(txtUsername.Text) || !ContainsNumberAndLetter(pbPassword.Password))
        {
            strErrors.Add("Your username and password most both contain at least 8 characters and contain at least 1 letter and 1 number.");
            isValid = false;
        }

        if (isValid == false)
        {
            MessageBox.Show(strErrors);
        }

        return isValid;
    }

Mais hélas, vous ne pouvez pas utiliser une liste de type String dans la méthode Show. Une idée ?

6voto

jdavies Points 7712

Vous pourriez utiliser ce qui suit :

        List<string> errors = new List<string>();
        errors.Add("Error 1");
        errors.Add("Error 2");
        errors.Add("Error 3");

        string errorMessage = string.Join("\n", errors.ToArray());
        MessageBox.Show(errorMessage);

2voto

smoak Points 3640

Pourquoi ne pas utiliser une chaîne de caractères ?

private bool FormIsValid()
{
    bool isValid = true;
    string strErrors = string.Empty;

    if (!(txtFirstName.Text.Length > 1) || !(txtLastName.Text.Length > 1))
    {
        strErrors = "You must enter a first and last name.";
        isValid = false;
    }
    if (!txtEmail.Text.Contains("@") || !txtEmail.Text.Contains(".") || !(txtEmail.Text.Length > 5))
    {
        strErrors += "\nYou must enter a valid email address.";
        isValid = false;
    }
    if (!(txtUsername.Text.Length > 7) || !(pbPassword.Password.Length > 7) || !ContainsNumberAndLetter(txtUsername.Text) || !ContainsNumberAndLetter(pbPassword.Password))
    {
        strErrors += "\nYour username and password most both contain at least 8 characters and contain at least 1 letter and 1 number.";
        isValid = false;
    }

    if (isValid == false)
    {
        MessageBox.Show(strErrors);
    }

    return isValid;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X