2017-05-25 43 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

事情是即时通讯使用相同的逻辑在其他形式和工作就好了... –