В моей форме есть индикатор выполнения, который не обновляется.
Когда нажимается кнопка «Отправить письмо», я делаю это:
Public Sub SendMail()
If CheckSettings() = False Then Exit Sub
BackUpEbillFile()
LockForm(True)
StatusBars(1, "Sending emails...")
ProgressBar1.Maximum = intInvoicesToSend
BackgroundWorker1.RunWorkerAsync()
End Sub
У меня есть следующие события:
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
e.Result = SendBills()
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Console.WriteLine("I DID IT MA!!!!1 status: " & ProgressBar1.Value)
ProgressBar1.PerformStep()
Console.WriteLine("I DID IT MA!!!!2 status: " & ProgressBar1.Value)
End Sub
В SendBills, который находится в почтовом классе, я делаю это:
smtp.Send(msg)
Console.WriteLine("I DID IT PA!!!! count: " & iCount)
frmBilling.BackgroundWorker1.ReportProgress(iCount)
Моя проблема заключается в ProgressBar1.PerformStep () в ProgressChanged. Я добираюсь, чтобы прогресс изменился, но Progressbar1 не меняется. Он остается на нуле.
- intInvoicesToSend равно 16
- ProgressBar1.Minimum = 0
- ProgressBar1.Maximum = intInvoicesToSend (который был 16)
- ProgressBar1.Step = 1
Вот моя консоль от console.writelines:
Я ЭТО ПАП !!!! количество: 0
Я ЭТО МАМА !!!! 1 статус: 0
Я ЭТО МАМА !!!! 2 статус: 1
Я ЭТО ПАП !!!! количество: 1
Я ЭТО МАМА !!!! 1 статус: 1
Я ЭТО МАМА !!!! 2 статус: 2
Я ЭТО ПАП !!!! количество: 2
Я ЭТО МАМА !!!! 1 статус: 2
Я ЭТО МАМА !!!! 2 статус: 3
Я ЭТО ПАП !!!! количество: 3
Я ЭТО МАМА !!!! 1 статус: 3
Я ЭТО МАМА !!!! 2 статус: 4
Может кто-нибудь сказать мне, что я делаю не так?
Спасибо!