0

Visual Studio 2010 - (Windows フォーム) C# で

私はこのコードを持っています:

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

SelectedItemあなたはおそらくコンボボックスを持っていません。

現在選択されているアイテムであるオブジェクト、または現在選択されているアイテムがない場合は null。

次に、これらの行は次の時点で失敗する可能性がありToString()ます。

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

SelectedItemUI 要素で項目が選択されていない場合は 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 が null であるか、cbxValuta2.Selected アイテムが null であることを意味します。このコンボボックスで何かを選択していることを確認してください。

于 2013-01-16T11:05:53.580 に答える
0

これは、cbxValuta2または (より可能性が高い) のcbxValuta2.SelectedItemいずれかが であることを意味しますnull。これは奇妙ではありません。ユーザーがゼロ項目を選択できるリストがある場合、anullは非常に可能性の高い値です。

メソッド (この場合は ) をif呼び出す前に、 でそれを確認する必要があります。ToString()

于 2013-01-16T11:05:23.007 に答える
0

cbxValuta にはアイテムが選択されていないため、primo は null です。

于 2013-01-16T11:07:51.360 に答える