我有窗户形式。我已经放入了一张加载图像PictureBox
当我加载表单时,我已经设置了
PictureBox1.Visible = false;
当我触发我设置的按钮的单击事件时
PictureBox1.Visible = true;
但在这种情况下,有一些代码可以通过存储过程从数据库检索数据。
当它将跳转到从存储过程检索数据的代码时,加载图像将停止加载。
这不应该发生。它应该显示为正在加载。我使用了 .gif 加载图像。
我该如何解决这个问题?
每次在 eventHandler 中进行长时间持续的调用时,您都应该使用后台工作者!后台工作者可以异步运行代码因此,您的按钮单击事件处理程序将在启动工作程序后立即结束。
// add a BackGroundWorker bwLoadData to your form
private void YOURBUTTON_Click(object sender, EventArgs e)
{
PictureBox1.Visible = true;
bwLoadData.RunWorkerAsync();
}
private void bwLoadData_DoWork(object sender, DoWorkEventArgs e)
{
// access your db, execute storedProcedue and store result to
e.Result = YOUR_DATASET_RECORDS_OR_ANYTHING_ELSE;
}
private void bwLoadData_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Result != null)
{
// e.g. show data on form
} else {
// e.g. error message
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)