Проверка данных и список ошибок в одном окне сообщения c # - PullRequest
0 голосов
/ 29 мая 2018

Надеюсь, у вас все хорошо.Я хотел бы попросить у вас совета.

Я ищу способ проверки данных перед выполнением кнопки OnClick.У меня есть несколько комбо-боксов с некоторыми данными на выбор.В настоящее время я использовал какое-то решение, которое выглядит довольно «грязным», и я не рад этому.

В настоящее время я использую что-то похожее на это:

if(box1 == null)
{
   MessageBox.Show("Error 1");
}
if(box2 == null)
{
   MessageBox.Show("Error 2");
}
if(box3 == null)
{
   MessageBox.Show("Error 3");
}

Если у меня есть3 поля пусто Я получу сообщение, отображаемое 3 раза по одному для каждой ошибки.Есть ли способ перечислить все ошибки в одном окне сообщения, если ошибка истинна?

Я думал о чем-то вроде этого:

bool a = true;
bool b = true;
bool c = true;

a = (box1 == null);
b = (box2 == null);
c = (box3 == null);

if(a || b || c)
{
  //Display list of errors where condition is true
}

Я был бы очень признателен за любые предложения.

Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Примерно так:

var errors = new List<string>();
if(box1 == null)
   errors.Add("Error 1");
if(box2 == null)
   errors.Add("Error 2");
if(box3 == null)
   errors.Add("Error 3");

if (errors.Count > 0) 
   MessageBox.Show(string.Join(Environment.NewLine, errors));
0 голосов
/ 29 мая 2018

Используйте String Builder для этого String Builder

private object box1;
private object box2;
private object box3;

//The following code base could be in a button click event

StringBuilder errorMessages = new StringBuilder();

if(box1 == null)
{
   errorMessages.AppendLine("Error 1");
}
if(box2 == null)
{
   errorMessages.AppendLine("Error 2");
}
if(box3 == null)
{
   errorMessages.AppendLine("Error 3");
}

if(!string.IsNullOrWhiteSpace(Convert.ToString(errorMessages)))
{
    MessageBox.Show(errorMessages.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

enter image description here

...