在单个消息框中显示多个错误消息
Displaying multiple error messages in a single message box
我目前正在开发一个带有产品维护页面的桌面应用程序,我正在寻找一种在单个消息框中显示所有验证错误的方法。
我使用以下代码为每个验证错误显示一个消息框:(验证绑定到保存按钮)
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 并在其中添加错误:
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);
我目前正在开发一个带有产品维护页面的桌面应用程序,我正在寻找一种在单个消息框中显示所有验证错误的方法。
我使用以下代码为每个验证错误显示一个消息框:(验证绑定到保存按钮)
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 并在其中添加错误:
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);