Числовое значение вниз всегда всегда на 1 число меньше - PullRequest
0 голосов
/ 09 мая 2019
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    try
    {
        textBox2.Text = Convert.ToString(Convert.ToInt32(textBox1.Text.Trim()) + Convert.ToInt32(numericUpDown1.Text.Trim()));
    }
    catch (Exception)
    { }
}

Сумма текстового поля и числового поля вниз всегда изменяется на 1 цифру при использовании вверх-вниз.При использовании botton / значение изменено в numericupdown.

Init Изначально начинается с 1, когда в текстовое поле не добавляется значение при изменении.

enter image description here При изменении по количеству номеровэто меняется так:

1 Ответ

4 голосов
/ 09 мая 2019

Вам необходимо использовать свойство NumericUpDown.Value, а не его свойство Text.
Также лучше проверить значение, введенное в TextBox.Для этого вы можете использовать int.TryParse () :

if (int.TryParse(textBox1.Text, out int inputValue)
{
    textBox2.Text = $"{inputValue + numericUpDown1.Value};
}

Интерполяция строки ($"{ }") доступна из C# 6.0+.
Использование[int].ToString() если вы используете предыдущую версию:

textBox2.Text = (inputValue + numericUpDown1.Value).ToString();

Если объявление переменной out (C# 7.0+) недоступно, объявите переменную заранее:

int inputValue = 0;
if (int.TryParse(textBox1.Text, out inputValue)
{
    textBox2.Text = $"{inputValue + numericUpDown1.Value};
}

Для Visual Studio 2012/2013, C# 5.0:

int inputValue = 0;
if (int.TryParse(textBox1.Text, out inputValue)
{
    textBox2.Text = (inputValue + numericUpDown1.Value).ToString();
}
...