先定义一个委托:
public delegate void ControlCallBack(object obj);
在程序中定义委托变量:
private ControlCallBack _getSpecity;
构造函数中实例化_getSpecity:
_getSpecity = new ControlCallBack(setSpecity);
界面控件名称:cmbSpecity 下拉列表控件
使用线程获取数据并填充控件:
开启获取线程:
private void bindSpecity()
{
Thread thread = new Thread(threadSpecity);
thread.Start();
}
线程中获取数据,并使用控件的Invoke方法交给定义的方法来处理数据:
private void threadSpecity()
{
Code.Education.Classes.Specialty spe = new EduIsLand.Code.Education.Classes.Specialty();
DataTable dt = spe.List();
cmbSpecity.Invoke(_getSpecity, dt);
}
处理数据的方法:
private void setSpecity(object objdata)
{
DataTable dt = (DataTable)objdata;
cmbSpecity.DisplayMember = "title";
cmbSpecity.ValueMember = "id";
cmbSpecity.DataSource = dt;
}