首页 > 解决方案 > C# WinForms 帮助实现 BackgroundWorker 和加载表单

问题描述

我想要达到的目标:

注意事项:

问题 :

代码

这是代码Form_Load

namespace MyApplication
{
     public partial class frmTransactionListing : Form
     {
          public frmTransactionListing()
          {
              InitializeComponent();
          }

          frmload LoadingForm = new frmload();

          private void frmTransactionListing_Load(object sender, EventArgs e)
          {
              bgwTransactionListing.RunWorkerAsync();
          }

这是我的代码BacgroundWorker_DoWork

private void bgwTransactionListing_DoWork(object sender, DoWorkEventArgs e)
    {
        try
        {
            bgwTransactionListing.ReportProgress(0, "Loading Records");
            System.Threading.Thread.Sleep(100);
            bgwTransactionListing.ReportProgress(100, "Completed");
        }
        catch (Exception ex)
        {
            MessageBox.Show("We have encountered an error and cannot proceed. Error: " + ex.Message);
        }
    }

这是我的代码BacgroundWorker_ProgressChanged

private void bgwTransactionListing_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {            
        if(e.ProgressPercentage == 0)
        {
            LoadingForm.ShowDialog();
        }
    }

这是我的代码BackgroundWorker_RunWorkerCompleted。这是我试图关闭加载表单的地方:

private void bgwTransactionListing_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        dgTransactionList.Refresh();
    }

高级 感谢您的所有帮助。

更新 1:我禁用了加载表单并尝试打开 Table Adapter Fill 方法,RunWorkerCompleted现在DataGridView正在显示记录。我认为填充方法是从我的数据库中检索记录的过程。显然不是。

更新2:在应用@russelrillema @Jimi 的建议后,我已经用我目前拥有的代码更新了代码。现在,我可以显示和关闭加载自。我也更新了我的问题。

标签: c#winformsvisual-studio-2017

解决方案


推荐阅读