powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Обращение к форме из одного из элементов массива BackgroundWorker
4 сообщений из 4, страница 1 из 1
Обращение к форме из одного из элементов массива BackgroundWorker
    #38367284
forrfor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Есть класс-наследник BackgroundWorker:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Class WebRipper : Inherits BackgroundWorker

    Dim Index As Integer
    Sub New(SessionId As Integer)
        Index = SessionId
    End Sub

    Sub Start(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles Me.DoWork
		Dim tst = sender.TextBox1.Text
		Dim p As New ProcessStartInfo
		p.FileName = "RunProject.exe"
		p.Arguments = "Process.exe -password_id " + Form1.TextBox1.Text '<= ПРОБЛЕМА ЗДЕСЬ! Не получается обратиться к Form1!
		Dim aroras As Process = Process.Start(p)
		aroras.WaitForExit()
    End Sub

    Private Sub Finish(sender As WebRipper, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles Me.RunWorkerCompleted
        Me.RunWorkerAsync()
    End Sub

End Class


На форме объявлена его коллекция и каждый элемент запускается с помощью RunWorkAsync().

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Public Class Form1
    Dim ThreadNum = 10
    Public WR(ThreadNum) As WebRipper
    Dim Started As DateTime

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For i As Integer = 0 To ThreadNum - 1
            WR(i) = New WebRipper(i)
            WR(i).RunWorkerAsync()
        Next
    End Sub

    Sub WRCompleted(sender As WebRipper, e As System.ComponentModel.RunWorkerCompletedEventArgs)
        sender.RunWorkerAsync()
    End Sub

End Class


Проблема в том, что не получается обратиться к форме из WebRipper (см.коммент в первом листинге). Т.е. при выполнении кода Form1.TextBox1.Text возвращается пустая строка (не отваливается, идет дальше), а при разглядывании вотчером пишет:
Form1.TextBox1.Text Reference to a non-shared member requires an object reference.
...
Рейтинг: 0 / 0
Обращение к форме из одного из элементов массива BackgroundWorker
    #38367290
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
forrfor,

Код: c#
1.
Form1.TextBox1.Text



Подозреваю, что Form1 - это название класса. Видимо, чтоб достучаться до TextBox1, нужно обращаться к экземпляру этого класса.
...
Рейтинг: 0 / 0
Обращение к форме из одного из элементов массива BackgroundWorker
    #38368074
forrfor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallarisforrfor,

Код: c#
1.
Form1.TextBox1.Text



Подозреваю, что Form1 - это название класса. Видимо, чтоб достучаться до TextBox1, нужно обращаться к экземпляру этого класса.

Это понятно из ошибки. Но экземпляр так и называется! А как мне сделать, чтоб он понял, что я экземпляр имею в виду?
...
Рейтинг: 0 / 0
Обращение к форме из одного из элементов массива BackgroundWorker
    #38368094
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так передайте то что здесь Form1.TextBox1.Text в экземпляр WebRipper хоть через конструктор... чтоль...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Обращение к форме из одного из элементов массива BackgroundWorker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]