Окно сообщения не отображает сообщение - PullRequest
1 голос
/ 25 ноября 2010

Я написал набор функций для проверки текстовых полей в моей форме для их необходимых полей, как это

private void ValidateForm ()

        {
        //Initialise the variables for validation check and call the related functions
        bool bisValidhost = ValidateHost();
        bool bisValidPassword = ValidatePassword();
        bool bisUsername = ValidateUsername();

        //If any of the entries is missing then show error message
        if(bisValidhost && bisValidPassword && bisUsername == false)
            {
            MessageBox.Show("This is not a Valid Entry!");                
            }         
        }


    /// <summary>
    /// This function validate the Required field need of txtHost.
    /// </summary>
    /// <returns></returns>
    private bool ValidateHost()
        {
        ErrorProvider errorProvider = new ErrorProvider();
        bool isValid = true;

        //If the txtHost is empty, show a message to user
        if(txtHost.Text == string.Empty)
            {
            errorProvider.SetError(txtHost, "Please enter the host address");
            isValid = false;
            }
        else
            errorProvider.SetError(txtHost, string.Empty);
        return isValid;
        }


    ///<summary>
    /// This function validate the Required field need of txtUsername.
    /// </summary>
    /// <returns></returns>
    /// </summary>
    /// <returns></returns>
    private bool ValidateUsername()
        {
        ErrorProvider errorProvider = new ErrorProvider();
        bool isValid = true;

        //If the txtUsername is empty, show a message to user
        if(txtUsername.Text == string.Empty)
            {
            errorProvider.SetError(txtUsername, "Please enter the Username");
            isValid = false;
            }
        else
            errorProvider.SetError(txtUsername, string.Empty);
        return isValid;
        }


    ///<summary>
    /// This function validate the Required field need of txtPassword.
    /// </summary>
    /// <returns></returns>
    /// </summary>
    /// <returns></returns>
    private bool ValidatePassword()
        {
        ErrorProvider errorProvider = new ErrorProvider();
        bool isValid = true;

        //If the txtPassword is empty, show a message to user
        if(txtPassword.Text == string.Empty)
            {
            errorProvider.SetError(txtPassword, "Please enter the Password");
            isValid = false;
            }
        else
            errorProvider.SetError(txtPassword, string.Empty);
        return isValid;
        }

Но это не отображениеправильные сообщения.

1 Ответ

6 голосов
/ 25 ноября 2010

Возможно, я неправильно интерпретирую вашу IF-конструкцию

if(bisValidhost && bisValidPassword && bisUsername == false) 

но я думаю, что вы хотите

if( ! ( bisValidhost && bisValidPassword && bisUsername ))

Допустим, все ваши ответы были ИСТИННЫМИ (то есть: действительными), а затем интерпретировали его как

if ( TRUE and TRUE and ( TRUE == FALSE ))

Если бы один из первых двух был ЛОЖЬ, а последний был в порядке, вы бы получили

IF ( FALSE AND FALSE AND ( TRUE == FALSE))

, выполнив логическое НЕ (!) И проверив, не удастся ли один из них, - это то, что вам нужно.

если НЕТ (все 3 части действительны)

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