我有窗体。我在 PictureBox
当我加载表单时,我已经设置好
PictureBox1.Visible = false;
当我触发我设置的按钮的点击事件时
PictureBox1.Visible = true;
但在那种情况下,有一些代码可以通过存储过程从数据库中检索数据。
当它跳转到从加载图像停止加载的存储过程中检索数据的代码时。
这不应该发生。它应该显示为正在加载。我使用了 .gif 加载图像。
我该如何解决这个问题?
最佳答案
每次在 eventHandler 中进行长时间调用时,您都应该使用 BackgroundWorker! BackgroundWorker 可以异步运行代码,因此您的 button_click 事件处理程序将在启动 worker 后立即结束。
// 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
}
}
关于c# - 加载图像停止问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12103884/