2017-06-12 6 views
0

私はデータベーステーブルからデータを取得するコンボボックスを持っています。コンボボックスインデックスを-1に設定するとnullpointerが発生する

選択したインデックスが変更されたとき選択範囲の値をテキストボックスに送信してから、選択範囲をクリアします。

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    MainTextBox.Text = ComboBox.SelectedValue.ToString(); 
    ComboBox.SelectedIndex = -1; 
} 

これは、テキストボックスにデータを取得し、コンボボックスをクリアしますが、nullポインタの例外も発生します。それ自体で

この行は、正常に動作します:自身で

MainTextBox.Text = ComboBox.SelectedValue.ToString(); 

この行は、正常に動作します:

ComboBox.SelectedIndex = -1; 

どのように私はこの問題を解決するのですか?

答えて

3

ComboBox.SelectedIndex = -1を設定すると、インデックスが変更されたため、ComboBox_SelectedIndexChanged関数が再度呼び出されます。

関数が二度目と呼ばれる場合がComboBox.SelectedValue-1に等しいSelectedIndexnullに設定されているように、NullReferenceExceptionがスローされます。

ソリューション:もちろん

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if(ComboBox.SelectedIndex != -1) 
    { 
     MainTextBox.Text = ComboBox.SelectedValue.ToString(); 
     ComboBox.SelectedIndex = -1; 
    } 
} 
+0

! ありがとう、レッスンが学んだ。 –

関連する問題