Новый программист C # - Добавление двух значений numericUpDown вместе? - PullRequest
2 голосов
/ 28 декабря 2008

Я довольно новичок в программировании на C #.

Я делаю программу для развлечения, которая складывает два числа вместе, а затем отображает сумму в окне сообщения. У меня есть два numericUpDowns и кнопка на моей форме. Когда кнопка нажата, я хочу, чтобы она отображала окно сообщения с ответом.

Проблема в том, что я не уверен, как складывать значения twp из numericUpDowns вместе.

Пока что у меня есть это в моем обработчике событий кнопки:

private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(this.numericUpDown1.Value + this.numericUpDown2.Value);
    }

Но, очевидно, это не работает. Это дает мне 2 ошибки компилятора: 1. Наилучшее совпадение перегруженного метода для 'System.Windows.Forms.MessageBox.Show (string) имеет недопустимые аргументы 2. Аргумент '1': невозможно преобразовать десятичное число в 'строку'

Спасибо!

Ответы [ 4 ]

6 голосов
/ 28 декабря 2008

this.numericUpDown1.Value + this.numericUpDown2.Value на самом деле правильно оценивает число, так что вы на самом деле очень близки. Проблема в том, что функции MessageBox.Show() нужна строка в качестве аргумента, а вы даете ей номер.

Чтобы преобразовать результат в строку, добавьте к ней .ToString(). Как:

private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show((this.numericUpDown1.Value + this.numericUpDown2.Value).ToString());
    }

Для справки: если вы хотите сделать более сложное форматирование, вы должны использовать String.Format() вместо ToString(). См. эту страницу для получения дополнительной информации о том, как использовать String.Format().

2 голосов
/ 28 декабря 2008

Это работает.

    decimal total = this.numericUpDown1.Value + this.numericUpDown2.Value;
    MessageBox.Show(total.ToString());

MessageBox.Show ожидает строку в качестве параметра (это первое сообщение об ошибке).

1 голос
/ 28 декабря 2008

Попробуйте это:

private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show((this.numericUpDown1.Value + this.numericUpDown2.Value).ToString());
    }

Он берет значения из компонентов numericUpDown и добавляет их для получения объекта типа Decimal. Затем он преобразуется в строку, которую принимает MessageBox.

0 голосов
/ 28 декабря 2008

Теперь это легко. NumericUpDown.Value имеет тип десятичного числа. Messagebox.Show() ожидает строку. Все, что вам нужно сделать, это

MessageBox.Show((this.numericUpDown1.Value + this.numericUpDown2.Value).ToString());

для преобразования результата сложения в строку.

...