Проверка TextBox'ов на пустоту

239
09 января 2018, 11:37

Использую для проверки на пустоту такой способ

На кнопку вешаю

foreach (var pb in Controls.OfType<TextBox>())
{
   if(string.IsNullOrWhiteSpace(pb.Text))
   {
      Textbox.Text = "Не всё заполнено";
   }
   else
   {
      TextBox.Text = "Всё заполнено";
   }
}

Но если в одном TextBox'e ничего не записано, то показывает что "Всё заполнено".

Если убрать текст из 2-ух TextBox'ов, то вываливает сообщение "Не всё заполнено"

Answer 1

Вот так работает:

var isEmty = Controls.OfType<TextBox>().Any(x => string.IsNullOrWhiteSpace(x.Text));
Textbox.Text = isEmty ? "Есть пустые" : "Нет пустых";

Естественно должно быть использовано в начале файла:

using System.Linq;

Но это не то чтобы хорошо - каждый раз пробегать по визуальному дереву... По уму бы отделить данные от контролов и проверять в моделях. Если WPF используете - попробуйте осилить MVVM. Ну или что-то подобное из сходных паттернов, типа MVC на WinForms можно завести (но лучше все же осваивать WPF и MVVM).

READ ALSO
В чем суть проверки if (bouncers[index] ==null)&hellip;?

В чем суть проверки if (bouncers[index] ==null)…?

Само выражение выглядит как if (bouncers[index] == null)Вопрос, для чего происходит такая проверка?

212
Повторный вопрос с уточнением

Повторный вопрос с уточнением

Недавно задавал такой вопрос на счет списка строк: Поиск строк в массиве по уменьшению их кол-ства

289
как посмотреть сборку в C#?

как посмотреть сборку в C#?

есть программа, которая компилируется в исполняемый файл exe, есть ли методы в C# которые позволяют заглянуть в этот exe? меня интересуют какие...

385
Почему async/await блокирует UI?

Почему async/await блокирует UI?

Пытаюсь разобраться с async/await

260