我正在Visual Studio 2013
使用Windows Forms
进行项目。
我有几种表格(LogIn
,Meny
,FakturaSokning
(现在))
当您启动该计划时,请打开LogIn
,当您登录时,转到Meny
,您可以在其中打开FakturaSokning
。
现在我遇到了问题。
我有2个名为comboBoxFaktNr1
和comboBoxFaktNr2
的组合框,我试图用从SQL服务器获取的FaktNr
来填充它们。我用
MigrateDBFakturaEntities db = new MigrateDBFakturaEntities();
获取相关信息
var t = db.Fakturor.OrderBy(z => z.FaktNr).ToList();
我尝试的第一件事是做一个foreach循环
foreach (var item in t)
{
comboBoxFaktNr1.Items.Add(item.FaktNr);
}
巫婆有效,但问题在于它停止了反应,直到它完成了。
如何在打开FakturaSokning
表格时在背景中填充组合框,并在完成后自动更新组合框,或者在Meny
或LogIn
时进行组合操作形成的?
如果我错过了一些相关信息告诉我,我会尽快添加它。
答案 0 :(得分:1)
您可以尝试使用在单独线程上执行操作的Backgroundworker。
答案 1 :(得分:0)
这个缝合一直是个问题。我在尝试使用它之前遇到的问题是我试图通过代码制造和使用工人manualy。但是,如果我使用ToolBox并从那里添加了一个工作人员一切正常。 这是我在DoWork中使用的代码
BackgroundWorker worker = sender as BackgroundWorker;
List<Fakturor> t = db.Fakturor.OrderBy(z => z.FaktNr).ToList();
foreach (var item in t)
{
comboBoxFaktNr1.Invoke((Action)(() =>
{
comboBoxFaktNr1.Items.Add(item.FaktNr);
}));
}