2017-05-25 75 views
0

因此,當我嘗試從數據(從數據庫中填充數據的列表中)加載組合框時,發生在mscorlib.dll中的問題發生在StackOverflowException中。我用我的表單構造函數:mscorlib.dll中出現StackOverflowException,列表爲<>

dbATMT是我的實體框架數據庫;

List<Team> teams = (from t in dbATMT.TeamSet 
          select t).ToList<Team>(); 

combobox1.Items.AddRange(teams.ToArray()); 
combobox2.Items.AddRange(teams.ToArray()); 

然後,我有這個,避免我的comboboxs有選擇了相同的值:

private void FillList() 
    { 
     List<Team> teams = (from t in dbATMT.TeamSet 
           select t).ToList<Team>();`(I get my error here)` 

     Team teamSelected= (Team)combobox1.SelectedItem; 

     List<Team> teams2 = new List<Team>(teams.Count); 

     foreach (Team tin equipas) 
     { 
      teams2.Add(equipa); 
     } 

     teams2.Remove(teamSelected); 

     combobox2.Items.Clear(); 
     combobox2.Items.AddRange(teams2.ToArray()); 
     combobox2.SelectedItem = teams2.ToArray()[0]; 

    } 

最後,我呼籲FillList()在combobox1_SelectedIndexChanged和combobox2_SelectedIndexChanged

+3

讀取堆棧跟蹤。 – SLaks

+1

該表中有多少條記錄? – Andez

+0

也許你錯過'in' – Hackerman

回答

2

最後FillList的一行更改了所選的索引。當所選索引改變時調用FillList。因此,一個無限循環直到你用完堆棧空間(StackOverflowException)。

類似問題的建議解決方案Modifying ComboBox SelectedIndex Without Triggering Event in C#

+0

事情是即時通訊使用相同的邏輯在其他形式和工作就好了... –