2017-06-12 83 views
0

我有一個組合框從數據庫表中獲取數據。當將組合框索引設置爲-1時爲空指針

選定索引更改時我想將選擇的值發送到文本框,然後清除選擇。

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

這會將數據傳送到文本框並清除組合框,但也會給出空指針異常。

這條線本身工作正常:

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

這條線本身工作正常:

ComboBox.SelectedIndex = -1; 

如何解決這個問題?

回答

3

當您設置ComboBox.SelectedIndex = -1時,ComboBox_SelectedIndexChanged函數被重新調用,因爲索引已被更改。

當調用該函數時,第二次,NullReferenceException被拋出ComboBox.SelectedValueSelectedIndex等於-1設爲null

解決方案:

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

當然! 謝謝,經驗教訓。 –

相關問題