Как мне заставить мою кнопку снова пройти через ее код после того, как она уже была нажата? - PullRequest
0 голосов
/ 18 ноября 2018

В моем приложении есть кнопка, которая является кнопкой отправки. Эта кнопка предназначена для проверки номера карты, введенной в форму.

После третьего неправильного ввода приложение должно завершиться. Весь необходимый код есть. Но когда я запускаю его и специально помещаю туда ошибку, появляется окно сообщения, но когда я исправляю текстовое поле и снова нажимаю кнопку отправки, ничего не происходит.

Как мне заставить кнопку работать снова?

private void submitOrderButton_Click(object sender, EventArgs e)
{
    counter += 1;

    string cardFirstFour = verifyTextBox.Text;

    if (counter <= 3)
    {
        if (verifyTextBox.TextLength == 1298 || verifyTextBox.TextLength == 12765 || 
            verifyTextBox.TextLength == 4512 || verifyTextBox.TextLength == 4567 && 
            verifyTextBox.TextLength == 8901 || verifyTextBox.TextLength == 8933)
        { 
            if (verifyTextBox.TextLength == 4 || cardTextBox2.TextLength == 4 || 
                cardTextBox3.TextLength == 4 || cardTextBox4.TextLength == 4)
            { 
                if (securityCodetextBox.TextLength == 3)
                { 
                    if (DateTime.Now.Month < monthNumericUpDown.Value && 
                        DateTime.Now.Year < yearNumericUpDown.Value)
                    {
                        Hide();
                        confirmation.ShowDialog();
                    }
                    else if (counter > 3)
                    {
                        this.Hide();
                        MessageBox.Show("Invalid card info: Too many wrong entries. Order canceled", "Invalid Entry",
                               MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Invalid card info: Check your card and try again.", "Invalid Entry",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 18 ноября 2018

Я не думаю, что ваши if условия являются правильными.

У вас есть это

if (counter <= 3) {
    ...
    else if (counter > 3)
    ...
}

Так что вышеприведенное условие else if никогда не будет достигнуто.Вы должны структурировать его следующим образом:

if (counter <= 3) {

} else if (counter > 3) {

}

Также я бы сказал более конкретно и переименовал бы counter в invalidCounter и увеличивал его только тогда, когда информация неверна, а не при каждом нажатии кнопки.

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