Вывод промежуточных результатов - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Как выводить промежуточные результаты в TextBox при работающей программе? Просто присвоение срабатывает только по окончании работы программы.

Решение задачи: «Вывод промежуточных результатов»

textual
Листинг программы
  1. Imports System.ComponentModel
  2.  
  3. Partial Public Class Page
  4.     Inherits UserControl
  5.     Private bw As BackgroundWorker = New BackgroundWorker
  6.  
  7.     Public Sub New()
  8.         InitializeComponent()
  9.  
  10.         bw.WorkerReportsProgress = True
  11.         bw.WorkerSupportsCancellation = True
  12.         AddHandler bw.DoWork, AddressOf bw_DoWork
  13.         AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
  14.         AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
  15.  
  16.     End Sub
  17.     Private Sub buttonStart_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
  18.         If Not bw.IsBusy = True Then
  19.             bw.RunWorkerAsync()
  20.         End If
  21.     End Sub
  22.     Private Sub buttonCancel_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
  23.         If bw.WorkerSupportsCancellation = True Then
  24.             bw.CancelAsync()
  25.         End If
  26.     End Sub
  27.     Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
  28.         Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
  29.  
  30.         For i = 1 To 10
  31.             If bw.CancellationPending = True Then
  32.                 e.Cancel = True
  33.                 Exit For
  34.             Else
  35.                 ' Perform a time consuming operation and report progress.
  36.                 System.Threading.Thread.Sleep(500)
  37.                 bw.ReportProgress(i * 10)
  38.             End If
  39.         Next
  40.     End Sub
  41.     Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
  42.         If e.Cancelled = True Then
  43.             Me.tbProgress.Text = "Canceled!"
  44.         ElseIf e.Error IsNot Nothing Then
  45.             Me.tbProgress.Text = "Error: " & e.Error.Message
  46.         Else
  47.             Me.tbProgress.Text = "Done!"
  48.         End If
  49.     End Sub
  50.     Private Sub bw_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
  51.         Me.tbProgress.Text = e.ProgressPercentage.ToString() & "%"
  52.     End Sub
  53. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут