c# - 加载图像停止问题

标签 c# winforms loading

我有窗体。我在 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/

相关文章:

winforms - 当窗口关闭时,我的应用程序失去焦点

C# Mysql 客户端服务器应用程序。如何管理在线用户?

javascript - 如何在其他内容之前加载图像?

c# - 以有效的方式在循环中附加一个字符串

c# - 我有一个具有方法的项目列表,如何对所有项目执行此方法?

c# - 如何在 winform 和 wpf 中以编程方式进行鼠标移动、单击、右键单击和按键等操作?

jquery - 如何通过jQuery ImagesLoaded加载大量图片

c# - 将 Entity Framework 与自定义子类一起使用

c# - `as` 和 `is` 的实际用途

performance - 是否有 "background-size:cover"的替代方案来加快加载速度?