0

Visual Studio 2010 - C# 中的(Windows 窗体)

我有这个代码:

private void cbxValuta_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            string primo = cbxValuta.SelectedItem.ToString();
            string secondo = cbxValuta2.SelectedItem.ToString();
            double cambio = double.Parse(CurrencyConverter.Convert(1.0m, primo, secondo));
            tbxConvertito.Text = (double.Parse(tbxDaConvertire.Text) * cambio).ToString();

我收到此错误:

NullReferenceException 是未处理的对象引用未设置为对象的实例。

我该如何解决这个问题?

4

5 回答 5

1

您可能没有SelectedItemi 组合框。

作为当前选定项的对象,如果当前没有选定项,则为 null。

然后这些行可能会失败ToString()

string primo = cbxValuta.SelectedItem.ToString();
string secondo = cbxValuta2.SelectedItem.ToString();
于 2013-01-16T11:05:13.023 回答
1

SelectedItem如果在 UI 元素中未选择任何项目,则返回 null。尝试添加检查是否已选择项目

if(cbxValuta.SelectedItem != null && cbxValuta2.SelectedItem != null)
{
       string primo = cbxValuta.SelectedItem.ToString();
       string secondo = cbxValuta2.SelectedItem.ToString();
//       ....
}
于 2013-01-16T11:05:52.300 回答
1

你写了这个字符串发生了异常:

string secondo = cbxValuta2.SelectedItem.ToString();

这意味着或 cbxValuta2 为空,或 cbxValuta2.Selected 项目为空。检查您是否在此组合框中选择了某些内容。

于 2013-01-16T11:05:53.580 回答
0

这意味着要么cbxValuta2或(更有可能)cbxValuta2.SelectedItemnull。这并不奇怪——如果你有一个用户可以选择零个项目的列表,anull是一个很可能的值。

您应该if在调用任何方法(ToString()在本例中为 )之前检查它。

于 2013-01-16T11:05:23.007 回答
0

primo 为空,因为 cbxValuta 没有选定项目。

于 2013-01-16T11:07:51.360 回答