2011-08-03 8 views
1

私は、MessageBox.Showを使用してアプリケーションで検証エラーのリストを表示する方法を見つけようとしています。これまでのところ、私はこれを持っています:MessageBoxのエラーのリストを表示する方法

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; 
    } 

しかし、まあ、あなたはShowメソッドの中で文字列型のリストを使うことはできません。何か案は?

答えて

5

次を使用することができます。

 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); 
2

なぜ文字列を使用しないのですか?

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; 
} 
+0

AのStringBuilderは、一般的に、より良い実行しますが、ここでのように、いくつかの文字列のそれほど重要ではないでしょう。 –

関連する問題