使用Show()显示来自另一个类的数据

时间:2013-04-12 23:30:35

标签: c#

我知道如何用C ++创建程序,但对C#来说很新,所以请耐心等待,但我有一个问题,而且我的生活在google上找不到它,或者stackoverflow搜索(也许不知道一个很好的方式来表达它)。我的表单上有两个函数:NumericUpDownButton。单击该按钮后,我想从消息框中的NumericUpDown.Show()抓取数据。这是我现在拥有的。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void StatBox_ValueChanged(object sender, EventArgs e)
    {
        //decimal Stat = StatBox.Value;
        //string StatStr = Stat.ToString();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(StatBox.Value);
    }
}

2 个答案:

答案 0 :(得分:2)

与C ++一样,C#是一种强类型语言。这意味着如果您尝试将int传递给接受string的函数,则会出现编译时错误,反之亦然。这就是你在这里发生的事情。

The simplest overload of the MessageBox.Show function接受一个string参数,但您已将其传递给decimalStatBox.Value的结果):

MessageBox.Show(StatBox.Value);

修复很简单:将decimal转换为string。所有.NET对象都提供ToString成员函数,可用于获取对象的字符串表示形式。所以重写你的代码就像这样:

MessageBox.Show(StatBox.Value.ToString());

在调用此函数时,您甚至可以将多个子字符串连接在一起,就像使用C ++ string类型和I / O流一样。例如,您可以编写此代码:

MessageBox.Show("The result is: " + StatBox.Value.ToString());

或使用String.Format method,这有点类似于C printf函数。然后,您可以指定standardcustom数字格式,并避免显式调用ToString函数。例如,以下代码将以定点表示法显示上下控件中的数字,正好有两位小数:

MessageBox.Show(String.Format("The result is: {0:F2}", StatBox.Value.ToString()));

答案 1 :(得分:1)

这应该适合你:

public partial class Form1 : Form
{
   public Form1()
   {
       InitializeComponent();
   }

   private void StatBox_ValueChanged(object sender, EventArgs e)
   {
       //decimal Stat = StatBox.Value;
       //string StatStr = Stat.ToString();
   }

   private void button1_Click(object sender, EventArgs e)
   {
       MessageBox.Show(StatBox.Value.ToString());
   }
}

由于您使用MessageBox.Show()数据,因此您需要调用.ToString()上的StatBox.Value方法。

PS - 欢迎来到SO!你会喜欢它。