【问题标题】:How Show Loading form whenever Application Loads or Fetch Large Data from Database每当应用程序加载或从数据库中获取大数据时如何显示加载表单
【发布时间】:2022-11-10 08:45:04
【问题描述】:

每当我的应用程序在数据库操作时加载时,请帮助实现此代码

我有这样的代码

Private bgw As New BackgroundWorker
Public Sub showLoading()
    bgw.WorkerSupportsCancellation = True
    
    AddHandler bgw.DoWork, AddressOf bgw_doWork
    AddHandler bgw.RunWorkerCompleted, AddressOf bgw_Complete
    
    If Not bgw.IsBusy = True Then
        bgw.RunWorkerAsync()
    End If
End Sub

Public Sub closeLoading()
    If bgw.WorkerSupportsCancellation = True Then
        bgw.CancelAsync()
    End If
End Sub

Private Sub bgw_doWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
    Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
    Dim loadingScreen As New frmLoading
    
    
    loadingScreen.Show()
    
    While True
        If Not bgw.CancellationPending Then
            Threading.Thread.Sleep(50)
        Else
            e.Cancel = True
            Exit While
        End If
        End While
    End Sub
    
    Private Sub bgw_Complete(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
        Dim lstFrm As New List(Of frmLoading)
        lstFrm = Application.OpenForms.OfType(Of frmLoading)()
        
        If lstFrm.Count > 0 Then
            For Each frm As frmLoading In lstFrm
                frm.Close()
            Next
        End If
    End Sub

请帮助我如何在需要时将此方法调用到多个表单

【问题讨论】:

  • 我建议您忘记这一点并改用this。这将减少您现有表单中的代码混乱,并且它也可以更好地工作,因为它是一个模态对话。它显示的表单包括一个ProgressBar,可以显示或不显示实际进度,但您可以修改它以在PictureBox 或任何您想要的形式显示动画GIF。

标签: vb.net visual-studio visual-studio-2010


【解决方案1】:

您的问题似乎是 loadingScreen.ShowDialog()。

使用 loadingScreen.Show() 因为 .ShowDialog() 只要对话框保持打开状态就会阻止执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    相关资源
    最近更新 更多