vb.net 在等待进程时显示动画 Gif

问题描述

我正在运行将数据表导出到 Excel 的代码。由于这需要一段时间,我不想混淆用户显示图像

Loader

Dim _excel As New Microsoft.Office.Interop.Excel.Application
        Dim wBook As Microsoft.Office.Interop.Excel.Workbook
        Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet

        PictureLoading.Visible = True

        wBook = _excel.Workbooks.Add()
        wSheet = wBook.ActiveSheet()

        Dim dt As System.Data.DataTable = GetTableForCompleteArchive()
        Dim dc As System.Data.DataColumn
        Dim dr As System.Data.DaTarow
        Dim colIndex As Integer = 0
        Dim rowIndex As Integer = 0
        PictureLoading.Refresh()
        For Each dc In dt.Columns
            colIndex += 1
            _excel.Cells(1,colIndex) = dc.ColumnName
        Next
        PictureLoading.Refresh()
        For Each dr In dt.Rows
            rowIndex += 1
            colIndex = 0
            For Each dc In dt.Columns
                colIndex += 1
                _excel.Cells(rowIndex + 1,colIndex) = dr(dc.ColumnName)
            Next
        Next
        PictureLoading.Refresh()
        wSheet.Columns.AutoFit()
        Dim strFileName As String = Application.StartupPath & "\Export.xlsx"  '"C:\datatable.xlsx"
        If System.IO.File.Exists(strFileName) Then
            System.IO.File.Delete(strFileName)
        End If
        PictureLoading.Refresh()
        wBook.SaveAs(strFileName)
        wBook.Close()
        _excel.Quit()

        PictureLoading.Visible = False

问题是图像冻结并且没有动画。有没有办法在等待过程时使图像动画?

解决方法

function wpdocs_replaceALT( $content ) {
  if ( is_single() && in_the_loop() && is_main_query() ) {

    libxml_use_internal_errors( true );

    $post = new DOMDocument();
    $post->loadHTML( $content );
    $images = $post->getElementsByTagName( 'img' );

    foreach ( $images as $image ) {
        
      $view_photog = '';
      $src = $image->getAttribute( 'src' );
      $image_id = attachment_url_to_postid( $src );
      $media = get_post( $image_id );
      $caption = $media->post_excerpt;
      $photographer_relationship = get_field( 'photographer',$image_id );
      $photographer = ( is_array( $photographer_relationship ) && !empty( $photographer_relationship ) ) ? array_shift( $photographer_relationship ) : null;
        
      if ( !empty( $photographer ) ) {
        $link_to_photographer = get_permalink( $photographer );
        $view_photog = '<a class="learn-more-photog-link" target="_blank" href="' . $link_to_photographer . '">View Photographer</a>';
      }

      $link_text = '' . $caption . '' . $view_photog . '';

      if ( empty( $image->getAttribute( 'title' ) ) ) {

      $image->setAttribute( 'title',$link_text );
      }
    }
    $content = $post->saveHTML();
    return $content;
  }
}
add_filter( 'the_content','wpdocs_replaceALT' );

我的函数是从 Private Sub TotalArchiveToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles EXCELToolStripMenuItem.Click BackgroundWorker1.WorkerSupportsCancellation = True BackgroundWorker1.WorkerReportsProgress = True 'call this method to start your asynchronous Task. BackgroundWorker1.RunWorkerAsync() 'display the loading image PictureLoading.Visible = True End Sub Private Sub BackgroundWorker1_DoWork(sender As Object,e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork 'call the function to export to Excel Export2Excel() If BackgroundWorker1.CancellationPending Then e.Cancel = True End If End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object,e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted '' This event is fired when your BackgroundWorker exits. '' It may have exitted Normally after completing its task,'' or because of Cancellation,or due to any Error. PictureLoading.Visible = False End Sub 内部运行的。当我点击 Backgroundworker_DoWork 时图像设置为可见,完成 TotalArchiveToolStripMenuItem 后设置为不可见。