在单个消息框中显示多个错误消息

本文关键字:消息 显示 错误 单个 | 更新日期: 2023-09-27 18:06:24

我目前正在开发一个带有产品维护页面的桌面应用程序,我正在寻找一种在单个消息框中显示所有验证错误的方法。

我使用下面的代码为每个验证错误显示一个消息框:(验证绑定到保存按钮)

        if ((Convert.ToInt32(txtQuantity.Text)) > 20000)
        {
            MessageBox.Show("Maximum quantity is 20,000!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            txtQuantity.Focus();
            return;
        }
        if ((Convert.ToInt32(txtQuantity.Text)) <= (Convert.ToInt32(txtCriticalLevel.Text)))
        {
            MessageBox.Show("Quantity is lower than Critical Level.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            txtQuantity.Focus();
            return;
        }
        if (txtCriticalLevel.Text == "0")
        {
            MessageBox.Show("Please check for zero values!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            txtCriticalLevel.Focus();
            return;
        }

我想让用户一次轻松地了解所有错误,而不是每个显示的消息框逐个了解错误。

提前感谢!:)

在单个消息框中显示多个错误消息

您可以使用StringBuilder并在其中添加Errors:

StringBuilder sb = new StringBuilder();

 if ((Convert.ToInt32(txtQuantity.Text)) > 20000)
        {
              sb.AppendLine("Maximum quantity is 20,000!");            
        }

if ((Convert.ToInt32(txtQuantity.Text)) <= (Convert.ToInt32(txtCriticalLevel.Text)))
    {
       sb.AppendLine("Quantity is lower than Critical Level.");
    }
....
  MessageBox.Show(sb.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);

一个快速的解决方案是:

    string errorMessages = String.Empty;
    if ((Convert.ToInt32(txtQuantity.Text)) > 20000)
    {
        errorMessages +="- Maximum quantity is 20,000!'r'n";
        txtQuantity.Focus();
        return;
    }
    if ((Convert.ToInt32(txtQuantity.Text)) <= (Convert.ToInt32(txtCriticalLevel.Text)))
    {
        errorMessages += "- Quantity is lower than Critical Level.'r'n";
        txtQuantity.Focus();
        return;
    }
    if (txtCriticalLevel.Text == "0")
    {
        errorMessages += "- Please check for zero values!'r'n";
        txtCriticalLevel.Focus();
        return;
    }
    if(!String.IsNullOrEmpty(errorMessages))
        MessageBox.Show(errorMessages, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);