Проверьте данные в наборе текстовых полей - PullRequest
0 голосов
/ 19 октября 2018

Я работаю над созданием проекта, который позволяет пользователю вводить пользовательские данные, включая адрес.Данные с адреса берутся в нескольких полях текстового поля для улицы, города, штата, почтового индекса и любой дополнительной информации (например, номер блока и т. Д.).

Теперь я пытаюсь настроить некоторые проверки ошибок и некоторыевсплывающие подсказки об ошибках, чтобы предоставить пользователю информацию, когда он пытается отправить данные формы.Мне нужно настроить его так, чтобы в каждом поле (кроме информации, которая является необязательной) были данные. РЕДАКТИРОВАТЬ: Не могу поверить, что я забыл упомянуть об этом.В форме ввод данных адреса не является обязательным.Однако я пытаюсь настроить его так, чтобы, если в каком-либо поле были данные, оно сообщало пользователю, что им нужно иметь данные во всех полях.

Сейчас у меня есть огромный оператор if, настроенный для проверки ввода:

If (Not street.Text.Equals("") And (city.Text.Equals("") Or state.Text.Equals("") Or code.Text.Equals(""))) Or
   (Not city.Text.Equals("") And (street.Text.Equals("") Or state.Text.Equals("") Or code.Text.Equals(""))) Or
   (Not state.Text.Equals("") And (street.Text.Equals("") Or city.Text.Equals("") Or code.Text.Equals(""))) Or
   (Not code.Text.Equals("") And (street.Text.Equals("") Or city.Text.Equals("") Or state.Text.Equals(""))) Or
   (Not info.Text.Equals("") And (street.Text.Equals("") Or city.Text.Equals("") Or state.Text.Equals("") Or code.Text.Equals(""))) Then

Мой вопрос прост.Есть ли более простой способ сделать это, чем приведенное выше утверждение If?Лично для меня заявление If выглядит очень грязно, и я пытаюсь выяснить, есть ли другой способ сделать это.Код работает для того, что мне нужно, просто задаюсь вопросом, существуют ли разные углы для решения этой проблемы.

1 Ответ

0 голосов
/ 19 октября 2018

Если пользователь компилирует любое из полей адреса, просто проверьте, не заполнено ли одно из обязательных полей.

If (Not street.Text.Equals("") Or Not city.Text.Equals("") Or Not state.Text.Equals("") Or Not code.Text.Equals("") Or Not info.Text.Equals("")) Then
    If (street.Text.Equals("") Or city.Text.Equals("") Or state.Text.Equals("") Or code.Text.Equals("")) Then
        Msgbox("If you want to provide an address please compile street, city, state and ZIP code.")
    End If
End If

Пожалуйста, рассмотрите возможность использования OrElse вместо Or.

Также рассмотрите возможность использования IsNullOrWhiteSpace вместо Equals.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...