C# 我想在界面载入的时候使用BackgroundWorker从数据库去数据添加到combobox的选项中。
因为需要提取的数据比较多,如果直接写在界面Load事件中会比较卡,我现在是在主界面中的DoWork实践中将数据全部取出来并放到DataTable中然后在加载下一个界面时直...
因为需要提取的数据比较多,如果直接写在界面Load事件中会比较卡,我现在是在主界面中的DoWork实践中将数据全部取出来并放到DataTable中然后在加载下一个界面时直接用datatable中数据去添加选项,不会使用ReportProcess()实现,我需要的就是直接进入界面,然后后台取数据并添加到combobox的选项中。
假设我的方法就是cmobobox.datasource = sql.GetOption();
后面是我自己写的 private Static DataTable GetOption(){}
请教一下具体代码应该怎么写? 展开
假设我的方法就是cmobobox.datasource = sql.GetOption();
后面是我自己写的 private Static DataTable GetOption(){}
请教一下具体代码应该怎么写? 展开
展开全部
public class A
{
BackgroundWorker bg;
public A()
{
bg = new BackgroundWorker();
bg.DoWork += bg_DoWork;
bg.RunWorkerCompleted += bg_RunWorkerCompleted;
bg.RunWorkerAsync();
}
void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
DataTable dt= e.Result as DataTable;
//稿如绑定吧
}
void bg_DoWork(object sender, DoWorkEventArgs e)
{
//取数 吧取到的数返回
DataTable dt= new DataTable();
e.Result = dt;
}
}
如磨枣果你键游启的数量太大的话建议datagrid 使用虚模式加载
{
BackgroundWorker bg;
public A()
{
bg = new BackgroundWorker();
bg.DoWork += bg_DoWork;
bg.RunWorkerCompleted += bg_RunWorkerCompleted;
bg.RunWorkerAsync();
}
void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
DataTable dt= e.Result as DataTable;
//稿如绑定吧
}
void bg_DoWork(object sender, DoWorkEventArgs e)
{
//取数 吧取到的数返回
DataTable dt= new DataTable();
e.Result = dt;
}
}
如磨枣果你键游启的数量太大的话建议datagrid 使用虚模式加载
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询