Я пытаюсь создать приложение, которое создает документ Excel на основе пользовательского ввода. Документ может стать довольно обширным (несколько листов), поэтому я хочу поместить создание документа в BackgroundWorker и передать ход выполнения в ProgressBar.
У меня проблемы с доступом к элементам управления пользовательского интерфейса при создании документа.
Как получить доступ к нескольким элементам управления пользовательского интерфейса из BackgroundWorker?
Это очень простой пример двух из многих вещей, которые я хочу сделать в BackgroundWorker:
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
OpenWorkbook()
Dim Combobox() As ComboBox = {ComboBox1, ComboBox2, ComboBox3, ComboBox4}
With xlWorkBook.Sheets("Cover1")
.Range("E5").Value = TextBox1.Text
.Range("E6").Value = TextBox2.Text
.Range("E7").Value = TextBox3.Text
.Range("E8").Value = TextBox4.Text
For i = 0 To Combobox.Count - 1
.Range("A" & i + 1).Value = Combobox(i).Text
Next
End With
CloseWorkBook()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
End Sub
У меня совсем нет опыта, и после изучения этого вопроса я все еще не ладил с делегатом / вызовом. Любая помощь будет потрясающей. Заранее спасибо.