2013-07-02 71 views
1

Im試圖從兩個arraylist中的一個填充combobox,使用方法listView1_SelectedIndexChanged更改listview中的選擇。 問題是它第一次工作正常,但第二次我得到以下錯誤:「對象引用未設置爲對象的實例。」通過選擇ListView中的項目來填充組合框

的錯誤可能是發生在這裏:string pr = listView1.FocusedItem.Text;

請幫助。

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     ArrayList Profesor1 = new ArrayList(); 
     Profesor1.Add("Kolegij 1 profesor 1"); 
     Profesor1.Add("Kolegij 2 profesor 1"); 



     ArrayList Profesor2 = new ArrayList(); 
     Profesor2.Add("Kolegij 1 profesor 2"); 
     Profesor2.Add("Kolegij 2 profesor 2"); 



     string pr = listView1.FocusedItem.Text; //posible prob 
     switch (pr) 
     { 
      case "Profesor 1": comboBox1.DataSource = Profesor1; 
       break; 
      case "Profesor 2": comboBox1.DataSource = Profesor2; 
       break; 
     } 
    } 

回答

0

您的示例中是否還有其他事情正在影響listView1項目?我嘲笑了你的問題的一小克隆,我似乎無法複製的錯誤:

我用你的代碼的事件處理程序,我填充listView1正是如此:

 listView1.Items.Add("Profesor 1"); 
     listView1.Items.Add("Profesor 2"); 

這聽起來像是你在後臺觸發listView1_SelectedIndexChanged處理程序。作爲一個微不足道,你的數組列表不會改變,你可能不想讓你的ArrayList創建在你的事件處理程序中,並且每次都要重新創建它們(它們似乎沒有任何動態的信息)。特別是因爲這個處理程序經常會被調用兩次,用於取消選擇,並且再次被選中。

關於最後一點,也是值得擁有看看ItemSelectionChanged事件,它可以用來幫助您最初的問題,因爲它帶有ListViewItemSelectionChangedEventArgs包含物業IsSelected,你可以用它來確認您有一個對象被選中。

e.g:

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) 
    { 
     if (e.IsSelected) 
     { 
      // Your code here. 
      // e.Item... 
     } 
    } 
+0

Thx for private void listView1_ItemSelectionChanged(object sender,ListViewItemSelectionChangedEventArgs e) if(e.IsSelected) { //您的代碼在這裏。 } }'這工作正常.. –

+0

我添加了if語句(** if(listView1.SelectedItems.Count> 0)**)並且工作正常。我的代碼:'if(listView1.SelectedItems.Count> 0) { string pr = listView1.FocusedItem.Text; switch(pr) case「Profesor 1」:comboBox1.DataSource = kolegijiProfesor1; 休息; 案例「Profesor 2」:comboBox1.DataSource = kolegijiProfesor2; 休息; } }' –

+0

好東西,我沒有設法複製錯誤,但很高興你已經解決了你的問題= D – Chris

0

看看this可以幫到你。也看看here

+0

只是鏈接到的網頁是不好的做法。總結未來用戶的重要位,以防止這些鏈接最終破裂。 – Logarr

相關問題