2

我对 C# 编程相当陌生。

我正在制作一个有趣的程序,将两个数字相加,而不是在消息框中显示总和。我的表单上有两个 numericUpDowns 和一个按钮。当按下按钮时,我希望它显示一个带有答案的消息框。

问题是,我不确定如何将 numericUpDowns 中的 twp 值相加。

到目前为止,我的按钮事件处理程序中有这个:

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':无法将十进制转换为 'string'

谢谢!

4

4 回答 4

6

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()

于 2008-12-28T15:43:54.590 回答
2

这行得通。

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

MessageBox.Show 需要一个字符串作为参数(这是第一条错误消息)。

于 2008-12-28T15:55:35.423 回答
1

试试这个:

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

它从 numericUpDown 组件中获取值并将它们相加以获取 type 的对象Decimal。然后将其转换为 MessageBox 采用的字符串。

于 2008-12-28T15:44:42.997 回答
0

现在这很容易。NumericUpDown.Value的类型为 Decimal。Messagebox.Show()需要一个字符串。你需要做的就是

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

将加法的结果转换为字符串。

于 2008-12-28T15:46:12.793 回答