0

在此处输入图像描述

简而言之:我想加载我的表单,然后使用Background Worker从中获取数据Database 并设置一些组合框的 DataSource。
DoWork事件中我获取数据,在RunWorkerCompleted事件中我设置数据源。问题是跨线程问题。我能做些什么来解决这个问题?

我不明白为什么设置 DisplayMember 可以,但在下一行,设置 ValueMember 会引发异常

4

2 回答 2

11

您可以使用控件的“调用”方法在与该控件相同的上下文(线程)中运行代码。这是一个简单的例子:

comboBox1.Invoke((MethodInvoker)delegate{
       //Code to modify control will go here
            comboBox1.Text = "";
        });   
于 2013-02-07T06:31:16.003 回答
2

我想你把它弄反了。DoWork 应该是FetchData并且 DoWorkCompleted 应该是BindComboBoxes.

于 2013-02-07T06:03:50.217 回答