Проблема с условным изменением BackColor в форме текстового поля - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь создать оператор в текстовом поле формы Windows таким образом, чтобы фоновый цвет изменялся, если задано значение <, > или == для данной переменной.

Я пытался с if / else if и switch.

private void txtPuntosTotalesAGenerar_KeyPress(object sender, KeyPressEventArgs e)
    {

        if (e.KeyChar == (char)Keys.Enter)
        {
            int finalSamplePoints = Convert.ToInt32(Console.ReadLine());
            int try1 = 1500;

            if (finalSamplePoints > try1)
            {
                txtPuntosTotalesAGenerar.BackColor = Color.Orange;
            }
            else if (finalSamplePoints < try1)
            {
                txtPuntosTotalesAGenerar.BackColor = Color.Red;
            }
            else if (finalSamplePoints == try1)
            {
                txtPuntosTotalesAGenerar.BackColor = Color.Green;
            }
        }
    }

С помощью этого кода мне удалось получить красный цвет фона, но он никогда не меняется, неважнозначения, которые я ввожу в текстовое поле.

1 Ответ

0 голосов
/ 11 октября 2019

Проблема в том, что Console.ReadLine() всегда дает 0 при нажатии клавиши Enter.

Я думаю, вам нужно изменить логику следующим образом

private void txtPuntosTotalesAGenerar_KeyPress(object sender, KeyPressEventArgs e)
{

    if (e.KeyChar == (char)Keys.Enter)
    {
        int finalSamplePoints = Convert.ToInt32(txtPuntosTotalesAGenerar.Text);
        int try1 = 1500;

        if (finalSamplePoints > try1)
        {
            txtPuntosTotalesAGenerar.BackColor = Color.Orange;
        }
        else if (finalSamplePoints < try1)
        {
            txtPuntosTotalesAGenerar.BackColor = Color.Red;
        }
        else if (finalSamplePoints == try1)
        {
            txtPuntosTotalesAGenerar.BackColor = Color.Green;
        }
    }
}

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

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